我正在尝试建立一个聊天应用,您可以在其中搜索随机的用户与之交谈。现在,我在firestore中的数据库结构如下:
集合“用户”-文档“ userID”-集合“对话”-文档“ conversationID”-字段“合作伙伴” ,“ lastmessage”
此外,我有一个“对话”集合,其中包含对话中的所有消息。
我现在想要做的是,当您按下一个按钮时,应用程序将搜索随机用户与之聊天,但是我当然不想两次建议同一个人。因此,我想找出他/她已经与之交谈的其他用户。我相信可以在“合作伙伴” 字段中找到它,但找不到如何为特定用户获取所有合作伙伴。
能否帮助我设置正确的Firestore“查询”以获取此信息?还是生成另一个链接(但是我有重复的数据)是一种更好的做法,例如:集合“用户”-文档“ userID”-集合“ partners”-具有partnerID的文档
答案 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"));
}
}
}
});