ios - 使用 '.childAdded' 时 Firebase 不回调

标签 ios swift firebase

我有以下代码,用 Swift 编写,我希望每次将新记录添加到我的数据库时调用它:

var databaseRef = Firebase()
    databaseRef = Firebase.init(url: "<MY_PROJECT_URL>")
    databaseRef.child(byAppendingPath: "channels").queryLimited(toFirst: 100).observe(.childAdded , with: { (snapshot) in
          print("New Message input by user")
    })

这是我的数据结构:

enter image description here

所以我基本上为分支“ channel ”创建了一个监听器。完成处理程序仅在我的程序开始时被调用,然后再也不会。奇怪的是,如果我使用“.value”而不是“.childAdded”它确实有效!我对使用“.value”不感兴趣,因为它会返回我内部的整个数据 block 'channels' 分支,我真的只对添加的单个记录感兴趣。 (实际上是那些 L1 中的一个……家伙。当然是一个新人)有什么想法吗?

最佳答案

如果您同时观察来自所有用户的消息,我建议您稍微重构一下您的 Firebase 数据。使消息成为顶级对象,然后您就可以观察整个部分。我不知道您的消息是什么样的,但我假设如果您这样做,您将需要在消息中添加对用户的引用,以便您可以添加新消息并仍然看到哪个用户写的。

关于ios - 使用 '.childAdded' 时 Firebase 不回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122135/

相关文章:

ios - CoreLocation 线程崩溃崩溃 : com. apple.CoreLocation.ConnectionClient.0x16fcb870.events

swift - 用户图像的上下文菜单配置?

Firebase Algolia 在 2 个不同的集合上

ios - 使用 UIWebView 访问 SoundCloud 网站中当前轨道的 URL

ios - 我如何将 "pin" Sprite 转换为 Sprite Kit 中的其他 Sprite ?

ios - 使用未解析的标识符 ParseCrashReporting

ios - 快速删除 BlurView

iOS:外部显示器 AVPlayerController 关闭问题

javascript - 将 Firebase Promise 与 ES6 Promise 混合

ios - 你怎么能让 uilabel 环绕图像(如图所示)