用于查询的Firebase实时数据库侦听器

时间:2020-08-17 20:25:18

标签: node.js firebase firebase-realtime-database

如果我有以下查询,并根据答案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()))
      })

0 个答案:

没有答案