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

firestore从集合中的所有文档获取字段

朱运诚
2023-03-14

我试图设置一个聊天应用程序,在其中你可以搜索随机的用户交谈。现在,firestore中的数据库结构如下:

集合“users”-文档“userid”-集合“conversations”-文档“conversationid”-字段“partner”,“lastmessage”

其次,我有一个集合“conversations”,其中包含对话中的所有消息。

我现在尝试做的是,当你按下一个按钮时,应用程序将搜索一个随机的用户来聊天,但当然我不想两次建议同一个人。所以我想找出他/她已经和哪个其他用户进行了对话。我相信我可以用“合作伙伴”字段找到它,但我找不到如何获得特定用户的所有合作伙伴。

你能帮我设置正确的firestore“查询”来获取这些信息吗?或者更好的做法是生成另一个链接(但是我有重复的数据),例如:集合“用户”-文档“用户ID”-集合“合作伙伴”-带有partnerID的文档

共有1个答案

蓬野
2023-03-14

我所要做的就是创建一个对我的集合的引用,查询它并循环访问我的所有文档。(基于此答案:https://stackoverflow.com/a/55919881/3417559)

CollectionReference colRef = db.collection("users").document(mFirebaseAuth.getUid()).collection("conversations");
colRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
   @Override
   public void onComplete(@NonNull Task<QuerySnapshot> task) {
      if (task.isSuccessful()) {
          for (QueryDocumentSnapshot document : task.getResult()) {
              Log.d("FABTAG","partnerID" + document.getString("partner"));
          }
      }
   }
});
 类似资料:
  • 使用go和FireStore创建web应用程序。我遇到了一个奇怪的问题。如果使用NewDoc方法保存数据 我可以使用 现在,当我只想查找博客集合中的所有文档时,这是很棒的。但是我遇到了无法从blogs集合中查询特定blog的问题。我通过查看文档和保存类似的帖子来解决这个问题。 但是,由于我自己创建了docID,所以从整个集合中检索所有文档时使用

  • 嗨,我从javascript和react-native开始,我花了几个小时试图解决这个问题。有人能告诉我如何从firestore收集处获得所有文件吗? 我一直在尝试这个: 日志1打印所有对象(一个接一个),但日志2没有定义,为什么?

  • 我正在使用Java开发一个Android应用程序,我使用firestore数据库,我有一个名为用户位置的集合,其结构类似于照片: 分贝 我的问题是,当一个用户改变他的位置或一个新用户进入一个已经存在的位置(其他用户有相同的位置)时,它会创建一个新文档(如在“oran, algerie”中)。当我添加新用户并更新文档时,我想使用,但问题是我无法以正常方式检索根集合的所有文档: 它返回null。我尝试

  • 我想从一个集合中得到所有的文件,然后用它们,得到他们的身份证。这里我的集合如何是用户集合,它只是一个集合和多个文档。我试了一下,但不起作用: 更新

  • 假设我有这种结构 其中和是集合,和是文档 有没有一种方法可以通过一个查询获得根文档中包含的所有内容<如果我这样问 我只得到字段。我想要的是B的所有文件 我基本上希望我的查询返回 是否可能或者我真的需要对每个集合进行多个查询:/? 假设我有一个代表用户配置文件的非常深的嵌套集合树,我的成本会像地狱一样上升,因为每次我加载用户配置文件时,我都有一个读取请求的乘数其中N是我的树的深度: /.

  • 我现在有一个firestore,看起来像这样: 我使用的是,我试图获取“报告”集合中的所有文档。 我可以得到一个报告: 但我无法得到整个子集合 这可能吗?我是新手,所以这可能是一个愚蠢的问题。 谢谢 编辑控制台中收到的错误消息是: 我不确定权限,我没有访问权限,但如果是权限问题,我很困惑,我可以从集合中获取一个文档,但找不到获取所有文档的方法