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

时间:2019-09-14 07:18:59

标签: android firebase google-cloud-firestore

我正在尝试建立一个聊天应用,您可以在其中搜索随机的用户与之交谈。现在,我在firestore中的数据库结构如下:

集合“用户”-文档“ userID”-集合“对话”-文档“ conversationID”-字段“合作伙伴” ,“ lastmessage”

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

我现在想要做的是,当您按下一个按钮时,应用程序将搜索随机用户与之聊天,但是我当然不想两次建议同一个人。因此,我想找出他/她已经与之交谈的其他用户。我相信可以在“合作伙伴” 字段中找到它,但找不到如何为特定用户获取所有合作伙伴。

能否帮助我设置正确的Firestore“查询”以获取此信息?还是生成另一个链接(但是我有重复的数据)是一种更好的做法,例如:集合“用户”-文档“ userID”-集合“ partners”-具有partnerID的文档

1 个答案:

答案 0 :(得分:1)

我要做的就是创建对我的收藏的引用,对其进行查询并遍历我的所有文档。 (基于以下答案: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"));
          }
      }
   }
});