Firestore 是不是有相当于 Firebase 的 childAdded(使用 swift)的监听器?
Posted
技术标签:
【中文标题】Firestore 是不是有相当于 Firebase 的 childAdded(使用 swift)的监听器?【英文标题】:Does Firestore have listener that is the equivalent of Firebase's childAdded (using swift)?Firestore 是否有相当于 Firebase 的 childAdded(使用 swift)的监听器? 【发布时间】:2018-05-09 17:12:25 【问题描述】:我认为我是对的,Firebase 有一个 childAdded 方法和一个监听器,这意味着所有数据都是第一次加载的,然后监听器会在每次添加/修改/等新数据时进行观察.
当我的应用加载时,我使用 Firestore 在数据库上调用以下命令:
func loadMessageRequests()
defaultStore?.collection("requests").getDocuments() (querySnapshot, err) in
if let err = err
print("Error getting documents: \(err)")
else
etc.
然后我用请求填充字典。
但我也想监听对数据库的任何更改以及是否添加了任何请求等,目前我在控制器中有一个单独的监听器进行监听
let listener = model.defaultStore?.collection("requests")
.addSnapshotListener querySnapshot, error in
我只是想知道是否有 childAdded 的等价物,我可以在数据库上拥有一个侦听器,同时最初也加载了所有数据。
谢谢。
【问题讨论】:
【参考方案1】:在 Firestore 中,API 略有不同,但您正在寻找的信息和功能仍然可用。
Firestore 中只有一种类型的侦听器,您可以通过调用 addSnapshotListener
来附加它。这会立即针对初始值触发,然后针对数据的任何更改触发。
当快照侦听器触发时,您会得到一个QuerySnapshot,其中包含更新的数据和有关该数据更改的信息。更改封装在documentChanges
array 中。每个单独的DocumentChange
都有一个type
,指示文档是被添加、删除还是修改。
可以在FirebaseUI for android 中找到有关其工作原理的简单示例。 FirebaseUI ios library listens to the same protocol,但不知何故,我发现解析它在做什么要困难得多。
【讨论】:
谢谢@Frank。太好了。以上是关于Firestore 是不是有相当于 Firebase 的 childAdded(使用 swift)的监听器?的主要内容,如果未能解决你的问题,请参考以下文章
Firestore 查询返回未定义快照的位置(Vue.js / Firestore / Vuefire)
Flutter:Google Maps 如何从 Firestore 设置图标
Firebase Firestore:如何在 Android 上将文档对象转换为 POJO
如何将来自不同组件的 firebase auth 和 Cloud Firestore 用作单个 Firebase 应用程序
是否有任何与 rails ActiveRecord 迁移相当的 Firestore 数据库模式迁移概念?
将图像存储在 Firebase Storage 中并将元数据保存在 Firebase Cloud Firestore(测试版)中