如果我有以下查询,并根据答案given here,我认为第二个查询已附加了另一个侦听器,因此它是一个新快照。
ref.child('messages/$groupId/$messageId')
.once('value')
.then(snap => {
console.log('value', snap.val()))
// Start new message listener
ref.child('messages/$groupId')
.orderByKey()
.limitToLast(1)
.on('child_added', snap => console.log('child_added', snap.val()))
})
之所以可行,是因为在附加child_added侦听器时,已经从客户端的缓存中清除了/ messages / message1快照。
如果我的上述假设是正确的,那意味着如果我有以下查询,它将具有2个不同的侦听器(2个快照),或者由于它使用父节点,因此它将只有1个侦听器(1个快照),而当有一个子节点时,在子节点上添加它会触发一个新的侦听器?
ref.child('messages/$groupId')
.on('child_added',snap => {
console.log('child_added', snap.val()))
// Start new message listener
ref.child('messages/$groupId/$messageId')
.orderByKey()
.limitToLast(1)
.on('child_added', snap => console.log('child_added', snap.val()))
})