【发布时间】:2019-06-09 03:52:29
【问题描述】:
我正在尝试从 Firebase 获取关于我系统生命周期中问题状态的实时更改。我的child_changed 事件的交互方式与我预期的不同,所以我不确定我是否正确使用它。
我想获取questionStatus 变量的新更改,这样如果系统上的另一个用户更改了数据库上的变量,则两个用户都可以实时看到更新。我的 Firebase 数据库是这样设置的:
-/questions
-/ID1234567890
-/title
-/messages
-/ID1234567890
-/ID2345678901
'child_changed' 调用:
fire.database().ref('/questions/' + this.state.questionId + '/questionStatus').on('child_changed', snap => {
this.setState({
questionStatus: (snap.val().questionStatus),
})
console.log("CHANGED!")
})
上面的代码是我认为它应该工作的方式,但我永远无法让 console.log 按预期显示。通过从ref() 中删除questionStatus(如下面的代码中所述),每当我向问题(用于聊天)添加新消息时都会触发该事件,并且似乎会导致加载错误。我是误解了firebase还是我的代码更深了?也许这与组件的生命周期有关?我试过把它放在任何地方都无济于事,但目前在componentWillMount()。让我知道你的想法,谢谢!
fire.database().ref('/questions/' + this.state.questionId).on('child_changed', snap => {
this.setState({
questionStatus: (snap.val().questionStatus),
})
console.log("CHANGED!")
})
【问题讨论】:
标签: javascript node.js reactjs firebase firebase-realtime-database