android - 当文档集合中的引用发生更改时,Firestore 侦听器不会触发
问题描述
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
屏幕截图中所示),侦听器不会触发。因此,我不知道引用文档中的某些内容何时发生变化。
当引用对象内部发生更改时,如何使侦听器触发?还是为每个文档添加一个监听器是唯一的解决方案?
解决方案
查询只能考虑单个集合中的文档。因此,该查询的侦听器只能响应对该单个集合中文档的更改。它不会考虑对其他文件的任何引用。
如果您想监听来自 DocumentReference 字段的文档,则需要为每个单独的监听器建立一个新的监听器。
推荐阅读
- python - 如何使用python根据其内容删除整个数据集中的多行
- python - 被叫时不显示大叶choropleth
- laravel - 电子邮件验证后重定向到预期的 URL laravel 8 fortify jetstream 注册
- excel - 使用vba根据多张纸上的两列对表格进行排序
- python - 如何根据python中其他2个数据集的条件创建第三个数据集
- charts - Helm 3 - Ingress.yaml & Value.yaml - 规则不匹配
- c - 指针无法读取数组中的正确元素
- r - 在R中按组转换枢轴更长
- python - 在网格 Python 中查找模式
- sql-server - 如何获取条件中提到的所有值的数据