0

所以我一直在努力让它发挥作用。本质上,我正在构建一个聊天应用程序并依靠 childAdded 观察者来检查新消息。在我的 iOS 应用程序中,我使用以下内容:

//Get ref to users chat node
let messagesRef = dbRef.child("chats").child(self.userId)
//Only get most recent message

let messageQuery = messagesRef.queryOrdered(byChild: "messageTimeStamp").queryLimited(toLast: 1)

// Listen for new messages (last 1) being written to the Firebase DB
messageQuery.observe(.childAdded, with: { (snapshot) -> Void in...

当用户将消息添加到 /chat/uid 时,这可以正常工作。但是当我从firebase admin(节点js)添加一个子节点时,观察者永远不会被解雇。

这就是我从服务器端添加消息的方式:

ref.child('chats/'+ uid).push(message);

消息被正确地添加到树中,但没有观察者被触发。

尽我所能尝试,经过十几次没有产生任何差异的调整,我确信我错过了一些简单的东西。帮助!

4

1 回答 1

0

在发布问题后解决它......典型!添加 .set 似乎使观察者工作,即使文档说明它是相同的。

这有效:

ref.child('chats/'+ uid).push().set(message);
于 2017-03-29T22:27:14.703 回答