所以我一直在努力让这个工作起来。基本上我是在构建一个聊天应用程序并依赖一个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);
消息已正确添加到树中,但不会触发任何观察者。
尽可能地尝试,经过十几次没有产生差异的调整后,我确定我错过了一些简单的事情。救命啊!
答案 0 :(得分:0)
在发布问题后解决了......典型的!添加.set似乎使观察者工作,即使文档声明它是相同的。
这有效:
ref.child('chats/'+ uid).push().set(message);