【问题标题】: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 的等价物,我可以在数据库上拥有一个侦听器,同时最初也加载了所有数据。

谢谢。

【问题讨论】:

    标签: swift google-cloud-firestore


    【解决方案1】:

    在 Firestore 中,API 略有不同,但您正在寻找的信息和功能仍然可用。

    Firestore 中只有一种类型的侦听器,您可以通过调用 addSnapshotListener 来附加它。这会立即针对初始值触发,然后针对数据的任何更改触发。

    当快照侦听器触发时,您会得到一个QuerySnapshot,其中包含更新的数据有关该数据更改的信息。更改封装在documentChanges array 中。每个单独的DocumentChange 都有一个type,指示文档是被添加、删除还是修改。

    可以在FirebaseUI for Android 中找到有关其工作原理的简单示例。 FirebaseUI iOS library listens to the same protocol,但不知何故,我发现解析它在做什么要困难得多。

    【讨论】:

    • 谢谢@Frank。太好了。
    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 2018-08-08
    • 2019-10-24
    • 1970-01-01
    相关资源
    最近更新 更多