【发布时间】:2018-02-08 02:50:48
【问题描述】:
我想只获取一次列表,然后将其保存在内存中并使用 child_added 来处理正在创建的项目。
我只使用child_added 很不方便,因为这样做会导致我为每个child_added 事件重新呈现我的整个列表。我宁愿在页面加载时渲染整个列表,然后为添加的每个项目渲染一次。
我的代码:
ref.once('value', (snapshot) => {
let messages = []
snapshot.forEach(function(childSnapshot) {
let messageKey = childSnapshot.key
let message = childSnapshot.val()
messages.push(message)
})
// Render messages list once
ref.on('child_added', (message) => {
const messageVal = message.val()
// Append message and re-render list
}
})
问题是我仍然为每个现有节点获得 child_added 事件。
最好的做法是跟踪我已经处理的项目并在child_added 中忽略它们?或者有没有办法只获得新的更新?
谢谢
【问题讨论】:
标签: javascript firebase firebase-realtime-database