我有以下代码,用 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")
})
这是我的数据结构:
所以我基本上为分支“ channel ”创建了一个监听器。完成处理程序仅在我的程序开始时被调用,然后再也不会。奇怪的是,如果我使用“.value”而不是“.childAdded”它确实有效!我对使用“.value”不感兴趣,因为它会返回我内部的整个数据 block 'channels' 分支,我真的只对添加的单个记录感兴趣。 (实际上是那些 L1 中的一个……家伙。当然是一个新人)有什么想法吗?
最佳答案
如果您同时观察来自所有用户的消息,我建议您稍微重构一下您的 Firebase 数据。使消息成为顶级对象,然后您就可以观察整个部分。我不知道您的消息是什么样的,但我假设如果您这样做,您将需要在消息中添加对用户的引用,以便您可以添加新消息并仍然看到哪个用户写的。
关于ios - 使用 '.childAdded' 时 Firebase 不回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122135/