【发布时间】:2021-04-20 04:05:11
【问题描述】:
我在 Firestore 上有一个集合,里面有文档,它们显示在我的应用程序的 RecyclerView 中,我怎样才能使它在单击该文档时打开它的子集合?
当您单击文档时,会发生以下情况:
private FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
private final CollectionReference collectionReference = firebaseFirestore.collection("Items");
AdapterFactoryKeysSnap adapterFactoryKeysSnap;
RecyclerView rv_keys_factory;
RecyclerView.LayoutManager RLM_keys_factory;
ProgressBar pb_keys_factory;
private void RecyclerViewFactory() {
Query query = collectionReference.orderBy("TurnKeyFactory", Query.Direction.DESCENDING);
FirestoreRecyclerOptions<ItemKeys> firestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<ItemKeys>()
.setQuery(query, ItemKeys.class).build();
adapterFactoryKeysSnap = new AdapterFactoryKeysSnap((ClickKeysBlanc) getContext(), getContext(), firestoreRecyclerOptions);
rv_keys_factory = requireView().findViewById(R.id.rv_keys_factory);
RLM_keys_factory = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
SnapHelper snapHelper = new GravitySnapHelper(Gravity.START);
snapHelper.attachToRecyclerView(rv_keys_factory);
rv_keys_factory.setHasFixedSize(false);
rv_keys_factory.setLayoutManager(RLM_keys_factory);
rv_keys_factory.setNestedScrollingEnabled(true);
rv_keys_factory.setAdapter(adapterFactoryKeysSnap);
adapterFactoryKeysSnap.startListening();
pb_keys_factory = requireView().findViewById(R.id.pb_keys_factory);
Objects.requireNonNull(rv_keys_factory.getAdapter()).setStateRestorationPolicy(RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY);
pb_keys_factory.setVisibility(View.GONE);
}
应用程序了解由于“TurnKeyFactory”而单击了哪个文档。在这个文档里面是一个名为“TheKeyOpens”的子集合。
我找到了一种方法来实现本文档中的构想,我写了以下内容
“工厂退出键(Factory)”--名称文件
private final FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
private final CollectionReference collectionReference = firebaseFirestore.collection("Items").document("Factory exit key(Factory)").collection("TheKeyOpens");
整个问题是,在我写完这个之后,它出现在主集合的所有文档中,而不是在特定的选择中。
我认为如果我的应用程序通过“TurnKeyFactory”打开选定的文档,如果我这样写,它将起作用:
private final FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
private final CollectionReference collectionReference = firebaseFirestore.collection("Items").document("TurnKeyFactory").collection("TheKeyOpens");
但是没有用。帮忙解决问题。
需要
Items->
- Factory exit key(Factory)->
- TheKeyOpens->
-TheKeyOpens 1
-TheKeyOpens 2
-TheKeyOpens 3
- TurnKeyFactory: “1”
- Factory exit key(Customs)->
- TheKeyOpens->
-TheKeyOpens 1
-TheKeyOpens 2
-TheKeyOpens 3
- TurnKeyFactory: “2”
【问题讨论】:
-
请编辑您的问题并添加它的屏幕截图,而不是描述您的数据库的外观。
-
@AlexMamo 我添加了截图并更新了问题
标签: java android google-cloud-firestore android-recyclerview