文档集合内的引用发生更改时,Firestore侦听器不会触发

时间:2020-04-16 16:58:02

标签: android firebase kotlin google-cloud-firestore

当其他文档中的引用文档发生更改时,我试图触发addSnapshotListener

我有两个表:usersrooms

rooms内有对用户的引用

rooms> {roomId}> room_users(这是一个集合)> [list of id's]>每个文档中对用户的引用

enter image description here

使用以下代码,我对此进行了引用

fun getInnerCollection(baseCollection: String, baseDoc: String, collection: String): CollectionReference {
     return FirebaseUtil.firestore
          .collection(baseCollection)
          .document(baseDoc)
          .collection(collection)
     }

在此我添加一个addSnapshotListener

每当我更改(或添加)room_users中任何文档中的字段时,侦听器都会触发。但是,当我更改users表中的属性时,该属性链接到文档中(如屏幕快照中的OMF1JtKgj3PZaEsUkitj900FIYm1),侦听器不会触发。 因此,我不知道参考文档中的某些内容何时发生更改。

当引用的对象内部发生更改时,如何使监听器触发? 还是将侦听器添加到每个文档是唯一的解决方案?

1 个答案:

答案 0 :(得分:1)

查询只能考虑单个集合中的文档。因此,该查询的侦听器只能响应对该单个集合中文档的更改。它将不考虑对其他文档的任何引用。

如果您想收听来自DocumentReference字段的文档,则需要分别为每个人建立一个新的侦听器。

相关问题