【问题标题】:Firebase Firestore Android StudioFirebase Firestore Android 工作室
【发布时间】:2021-08-09 08:13:18
【问题描述】:

我正在尝试从我的子集合数据中获取数据。

这是我的代码

database.collection("classes")
                        .document("classId")
                        .collection("subjects")
                        .document("subId")
                        .collection("materials")

                .addSnapshotListener(new EventListener<QuerySnapshot>() {
                    
                    @Override
                    public void onEvent(@Nullable QuerySnapshot value, @Nullable FirebaseFirestoreException error) {
                        materials.clear();
                        for (DocumentSnapshot snapshot:value.getDocuments()){
                            MatModel model = snapshot.toObject(MatModel.class);
                            model.setMatId(snapshot.getId());
                            materials.add(model);
                        }
                        adapter.notifyDataSetChanged();


                    }
                });

请支持我使用Auto Id从材料中检索数据

这是我的firestore数据Screenshot 1Screenshot 2的截图

【问题讨论】:

  • 需要您的支持,请帮忙
  • 您是否将classIdsubId 存储在变量中?你能告诉我们你尝试了什么吗?请回复@AlexMamo
  • @AlexMamo 先生,我可以在哪里与您分享完整代码?
  • 不需要完整的代码,只需将这些 ID 保存在变量中的代码即可。
  • @AlexMamo 先生,我只在 SubjectModel.java 中存储了 subId

标签: java android google-cloud-firestore


【解决方案1】:

你可以用collectionGroup来做。

首先,您需要将以下字段添加到material 文档以正确查询:classIdsubId

参考:https://firebase.google.com/docs/firestore/query-data/queries#collection-group-query

使用集合组:

firestore.collectionGroup("materials").whereEqualTo("classId", "real-class-id").whereEqualTo("subId", "real-sub-id").get()
       .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
         @Override
         public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
           // ...
         }
   });

【讨论】:

  • 先生,实际上我正在尝试构建一个 lms 应用程序
  • 什么是lms?此答案符合您对 Android Firebase Firestore 的要求。
  • 先生,我想使用每个文档不同的自动 ID 来检索数据
  • 使用集合组查询从集合组而不是单个集合中检索文档。你可以试试,我 100% 确定它适用于你的问题。您可以从上面的参考链接中查看更多示例。
猜你喜欢
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
  • 1970-01-01
  • 2020-11-13
  • 2017-07-21
  • 2020-06-16
  • 2016-04-05
相关资源
最近更新 更多