我正在與 firebase 一起制作聊天應用程式。我能夠通過此功能將用戶聊天保存在 firebase 中:
await FirebaseFirestore.instance
.collection("Chats")
.doc(uid! FirebaseAuth.instance.currentUser!.uid)
.collection("messages")
.add({
FirebaseAuth.instance.currentUser!.uid:
chatController.text,
}).then((value) => () {
b = uid;
});
但是當我保存一個用戶聊天時。我在想什么時候我會得到第二個用戶的聊天。它將從我保存兩個用戶聊天的檔案中回傳一個聊天。但不幸的是,當我保存用戶聊天時,它會保存一個名為第一個用戶 ID 和第二個用戶 ID 的新檔案,在第一個用戶聊天中它保存名為第二個用戶 ID 和第一個用戶 ID 的檔案。我知道它發生的原因是什么,但我該如何解決這個問題,我的意思是如何將兩個用戶的聊天保存在一個檔案中
uj5u.com熱心網友回復:
您需要有一個確定的檔案 ID。
一種簡單的方法是始終按字母順序對兩個 UID 進行排序,如下所示:
const docId = uid!.compareTo(FirebaseAuth.instance.currentUser!.uid) > 0
? uid! FirebaseAuth.instance.currentUser!.uid
: FirebaseAuth.instance.currentUser!.uid uid!
await FirebaseFirestore.instance
.collection("Chats")
.doc(docId)
...
有關這方面的更多資訊,請參閱我的答案中的示例:在 Firebase 中管理聊天頻道的最佳方式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/469458.html
