gpt4 book ai didi

java - 随机播放 Firebase 数据库中的项目

转载 作者:行者123 更新时间:2023-12-01 19:32:06 25 4
gpt4 key购买 nike

如何从 Firebase 数据库中随机排列项目?

假设我的数据库包含 4 个项目 [1,2,3,4]。在我的 RecyclerView 中,我想显示随机的内容,例如 [2,3,1,4]。我怎样才能做到这一点?

这是我的 fragment 中的代码。所以它可以检索数据,但我需要在显示之前对其进行洗牌。

RecyclerView mRecyclerView;
FirebaseDatabase mFirebaseDatabase;
DatabaseReference mRef;

@Override
public View onCreateView(@NotNull LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) {
if (rootView == null) {
rootView = inflater.inflate(R.layout.fragment_store, viewGroup, false);
setHasOptionsMenu(false);

mRecyclerView = rootView.findViewById(R.id.recycler_view);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 3));

mFirebaseDatabase = FirebaseDatabase.getInstance();
mRef = mFirebaseDatabase.getReference("Store");
}
return rootView;
}

为了从 Firebase 数据库检索数据,我使用以下代码:

@Override
public void onStart() {
super.onStart();

FirebaseRecyclerOptions<Store2> options =
new FirebaseRecyclerOptions.Builder<Store2>()
.setQuery(mRef, Store2.class)
.build();

FirebaseRecyclerAdapter<Store2, StoreHolder> firebaseRecyclerAdapter =
new FirebaseRecyclerAdapter<Store2, StoreHolder>(options) {
@NonNull
@Override
public StoreHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.store_gridview, parent, false);

return new StoreHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull final StoreHolder holder, int position, @NonNull final Store2 model) {
holder.setDetails(getContext(), model.getImage(), model.getName(), model.getPrice());
}

};

firebaseRecyclerAdapter.startListening();
mRecyclerView.setAdapter(firebaseRecyclerAdapter);

}

最佳答案

firebase 中没有可用于打乱数据的选项。但您可以在本地进行。

在此传递您的列表。

Collections.shuffle(arrayList);

关于java - 随机播放 Firebase 数据库中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59416070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com