当前位置: 首页 > 知识库问答 >
问题:

从Firestore中的子集合读取数据

拓拔玺
2023-03-14

我一直在从firestore的子集合中获取数据。我在下面附上我的代码脚本以供参考。

现在我从特定的子集合中获取数据。使用此查询行

 Query query = db.collection("Users").document("Group").collection("Group_1);

其工作正常,并返回数据。

但我想从组文档中获取所有数据。

下面的链接附上了我的数据库图片。

Firestore数据库映像

  Query query = db.collection("Users");

    FirestoreRecyclerOptions<PatientRegister> response = new FirestoreRecyclerOptions.Builder<PatientRegister>()
            .setQuery(query, PatientRegister.class)
            .build();

    adapter = new FirestoreRecyclerAdapter<PatientRegister, RegisterHolder>(response) {
        @Override
        public void onBindViewHolder(RegisterHolder holder, int position, PatientRegister model) {


            holder.text_1.setText(model.getPatient_name());
            holder.text_2.setText(model.getGender());
            holder.text_3.setText(model.getDatetime());
       
        @Override
        public RegisterHolder onCreateViewHolder(ViewGroup group, int i) {
            View view = LayoutInflater.from(group.getContext())
                    .inflate(R.layout.registration_list, group, false);

            return new RegisterHolder(view);
        }

        @Override
        public void onError(FirebaseFirestoreException e) {
            Log.d("000147", e.getMessage());
        }
    };

共有1个答案

严正初
2023-03-14

我有一个类似的问题,我认为问题是你不能从文档中获取所有数据,". get()"方法只适用于集合。

在我的例子中,我只是解决了在文档中添加数据以指定组的问题:

 Map<String,Double> User = new HashMap<>();
                    User.put("name","MyUserName");
                    User.put("group",1);

现在要获得所有:

db.collection("Users").get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
            @Override
            public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                postList.clear();
                for (DocumentSnapshot dc:queryDocumentSnapshots.getDocuments()) {
                   //dc get each document
                }
              
            }
 类似资料:
  • 如何从Flatter firestore读取子集合。我正在使用cloud\u firestore。我正在成功地将数据添加到firestore中,但无法检索它(已尝试,但失败)。我想检索名为product Firestore collection的子集合 我试过了,我没有文档ID,因为它是从fiRecovery自动生成的:

  • 在第一个屏幕截图中,集合用户中有许多文档。每个文档都包含进一步的集合jobPost,该集合包含进一步的文档及其元数据。 我在这里想要的是去收集用户的每个文档和进一步的子收集jobPost并获取所有文档。假设首先它应该转到集合用户中的文档1,在文档1中它应该获取子集合jobPost中的所有文档,然后它应该转到集合用户的第二个文档,然后获取子集合jobPost中的所有文档,等等。

  • 问题内容: 我想从Firebase Firestore数据库获取数据。我有一个名为user的集合,每个用户都有一些相同类型的对象(My Java自定义对象)的集合。我想在创建我的活动时用这些对象填充ArrayList。 在onCreate()中: 调用以获取项目列表的方法: 问题答案: 该操作返回a ,这意味着它是一个 异步操作 。调用仅启动操作,它不等待操作完成,因此您必须添加成功和失败侦听器。

  • 在Cloud Foreshore的这个文档中,提到了对集合ID列表的请求,您需要支付一个文档的阅读费用。 现在我正在为我的项目使用AngularFire和Ionic3。我的要求是只从一个有在哪里条件的集合中获取集合ID。如果我这样做,它将花费我的读取数=结果中的文档数。 我无法使用我在一些地方找到的方法。 请让我知道,如果你有一个解决方案。

  • 我正在制作一个应用程序,它存储用户使用我的应用程序学习了多少分钟。我的FiRecovery数据库以“用户”集合开始,每个用户都有自己的文档,该文档由他们在Auth中生成的用户ID命名。 我的问题是,如果我读取他们的userID文档(其子集合中有许多文档),这是算作一次读取,还是也算作子集合中的文档数? 提前感谢。

  • 我有一个包含10个文档的产品根集合。每个文档都有100个文档的子集合,没有其他字段。 现在如果我阅读产品收藏的文件 将收取多少次读取费用,由于我正在获取具有10个文档的产品集合的文档,我将收取10次读取费用?或者每个文档都有100个文档的子集合,因此我将收取10*100 =1000文档读取费用?