swift - Firebase DB : If I place observer on posts, 每当单个帖子发生更改时,是否都会返回所有嵌套帖子?

标签 swift firebase-realtime-database

假设用户的帖子嵌套在他的下面,并且每当该用户的帖子发生更改时,我们都需要让他知道。我在用户/帖子上放置了一个观察者,但我担心的是通过文档,我相信这会导致每次更改单个帖子时都会返回所有帖子。情况确实如此,还是只是通过网络发布了更改后的帖子?

ref.child("users/\(currentUserId)/posts").observe(FIRDataEventType.value, with: {[weak weakSelf = self](snapshot) in
        weakSelf?.allpostModel.hasFetched = true
        if let fetchedPosts = snapshot.value as? [String : [String : Any]]{
            weakSelf?.allPostsModel.postsJSON = fetchedPosts
        }
    })

如果我是正确的,并且用户必须为通过网络传输的所有帖子的数据付费,只要在此实现中单个帖子发生更改,那么什么是更好的解决方案?在每个帖子上放置一个观察者,并在我的帖子模型中以 postID 作为键创建一个字典以便于更新?

最佳答案

Firebase 数据库客户端将尝试最大程度地减少同步数据量。可能会有一些开销,但总的来说,if 会很好地避免检索已有的数据。

但是您的代码仍然必须弄清楚更改是什么。如果您响应子事件,例如 .childAdded.childRemoved.childChanged,您会更轻松。如果您响应这些事件,您也可以轻松地对 UI 执行最小更新。

关于swift - Firebase DB : If I place observer on posts, 每当单个帖子发生更改时,是否都会返回所有嵌套帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40336651/

相关文章:

node.js - 带查询的 firebase 函数中的循环

ios - 如何只删除 Firebase 值的父键?

ios - 如何在不崩溃的情况下处理首次加载的设置

ios - UIWebView FinishLoad/检测问题

swift - Swift 中的切片是什么?

json - Algolia是否有一种方法可以用逗号分隔的JSON字段创建单独的细化方面

swift - 如何在 ios 应用程序中不断从 Firebase 读取更新值

javascript - Firebase 检查节点是否存在返回 true 或 false

ios - UIPageViewController 点不显示

objective-c - Swift NSData 初始化器