听取子集合中的更改

时间:2020-02-02 21:46:35

标签: javascript firebase google-cloud-firestore

enter image description here

我想知道是否有可能以这样的方式订阅文档的整个集合:是否在completness.energy内有任何子节点(甚至像2020.2.1内的balanceRecords值一样深嵌套)更改监听器触发器

我尝试过:

FirebaseDb.collection(`users`).doc(uid).collection(`balanceRecords`)
  .onSnapshot({ includeMetadataChanges: true }, function (snapshot) {
    debugger
    // during initialisation snapshot:
    // docs.length = 0 
    // empty: true
})

集合的后续更新不会触发任何侦听器,如果有一种有效的方法可以侦听文档子集合的字段,您能取悦吗?

1 个答案:

答案 0 :(得分:1)

您提供的屏幕截图显示了一个没有子集合的文档。该文档具有一个称为“ balanceRecords”的可见字段,其中包含外观复杂的对象。由于它不是子集合,因此可以使用编写的代码引用它。

如果要阅读该字段,则必须阅读命名的文档。如果要侦听该字段中的更改,则必须在该单个文档上设置快照侦听器。快照侦听器不会确切告诉您该字段中发生了什么更改-您必须将其与上一个快照进行比较才能找出来。

FirebaseDb.collection('users').doc(uid).onSnapshot(snapshot -> {
    // read the balanceRecords field out of the document here.
})