当其他文档中的引用文档发生更改时,我试图触发addSnapshotListener
。
我有两个表:users
和rooms
。
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
),侦听器不会触发。
因此,我不知道参考文档中的某些内容何时发生更改。
当引用的对象内部发生更改时,如何使监听器触发? 还是将侦听器添加到每个文档是唯一的解决方案?
答案 0 :(得分:1)
查询只能考虑单个集合中的文档。因此,该查询的侦听器只能响应对该单个集合中文档的更改。它将不考虑对其他文档的任何引用。
如果您想收听来自DocumentReference字段的文档,则需要分别为每个人建立一个新的侦听器。