首页 > 解决方案 > 当文档集合中的引用发生更改时,Firestore 侦听器不会触发

问题描述

addSnapshotListener当其他文档中的引用文档发生更改时,我正在尝试触发。

我有两张桌子:usersrooms

里面有一个用户的引用rooms

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

在此处输入图像描述

使用以下代码,我得到了对此的引用

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

在此我添加一个addSnapshotListener.

每当我更改(添加)内部任何文档中的字段时room_users,侦听器都会触发。但是,当我更改users表中的属性时,该属性链接在文档中(如OMF1JtKgj3PZaEsUkitj900FIYm1屏幕截图中所示),侦听器不会触发。因此,我不知道引用文档中的某些内容何时发生变化。

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

标签: androidfirebasekotlingoogle-cloud-firestore

解决方案


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

如果您想监听来自 DocumentReference 字段的文档,则需要为每个单独的监听器建立一个新的监听器。


推荐阅读