当从 Firebase 管理员(nodejs)推送孩子时,Firebase childAdded 观察者不会被触发
Posted
技术标签:
【中文标题】当从 Firebase 管理员(nodejs)推送孩子时,Firebase childAdded 观察者不会被触发【英文标题】:Firebase childAdded observer not fired when child pushed from firebase admin (nodejs) 【发布时间】:2017-03-29 20:11:57 【问题描述】:所以我一直在努力让它发挥作用。本质上,我正在构建一个聊天应用程序并依靠 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 (node js) 添加一个子节点时,观察者永远不会被解雇。
这就是我从服务器端添加消息的方式:
ref.child('chats/'+ uid).push(message);
消息已正确添加到树中,但从未触发任何观察者。
尽我所能,经过十几次没有产生任何差异的调整后,我确定我错过了一些简单的东西。救命!
【问题讨论】:
【参考方案1】:在发布问题后解决它......典型!添加 .set 似乎使观察者工作,即使文档声明它是相同的。
这行得通:
ref.child('chats/'+ uid).push().set(message);
【讨论】:
以上是关于当从 Firebase 管理员(nodejs)推送孩子时,Firebase childAdded 观察者不会被触发的主要内容,如果未能解决你的问题,请参考以下文章
使用 NodeJS 的 Firebase 网络推送通知不起作用
CPU 和带宽密集型是不是直接使用 Firebase Cloud Messaging 发送推送通知?
通过NodeJS向Firebase Cloud Messaging发送消息