如何使消息立即在收件人的设备上可见 - SwiftUI 和 FirebaseFirestore
How to make the message visible on the recipient's device instantly - SwiftUI and FirebaseFirestore
我通过 SwiftUI-FirebaseFirestore 制作了 ChatApp。我运行同时有2个模拟器,如果用户A给用户B发消息,我得重新加载用户B的界面才能显示。我希望它是自动的并立即显示,那有什么想法呢?
您正在寻找的是所谓的快照侦听器。实际上,它的处理方式与任何其他文档相同,但它有一个闭包,允许您响应特定文档的更新事件。它的一般用法是这样的。
db.collection("cities").document("SF")
.addSnapshotListener { documentSnapshot, error in
guard let document = documentSnapshot else {
print("Error fetching document: \(error!)")
return
}
guard let data = document.data() else {
print("Document data was empty.")
return
}
print("Current data: \(data)")
}
您应该能够查看文档快照以确定数据中的任何更改,然后响应这些更改。在您的情况下,您将重新加载视图。
https://firebase.google.com/docs/firestore/query-data/listen
我通过 SwiftUI-FirebaseFirestore 制作了 ChatApp。我运行同时有2个模拟器,如果用户A给用户B发消息,我得重新加载用户B的界面才能显示。我希望它是自动的并立即显示,那有什么想法呢?
您正在寻找的是所谓的快照侦听器。实际上,它的处理方式与任何其他文档相同,但它有一个闭包,允许您响应特定文档的更新事件。它的一般用法是这样的。
db.collection("cities").document("SF")
.addSnapshotListener { documentSnapshot, error in
guard let document = documentSnapshot else {
print("Error fetching document: \(error!)")
return
}
guard let data = document.data() else {
print("Document data was empty.")
return
}
print("Current data: \(data)")
}
您应该能够查看文档快照以确定数据中的任何更改,然后响应这些更改。在您的情况下,您将重新加载视图。
https://firebase.google.com/docs/firestore/query-data/listen