Flutter Firestore集合组查询流未更新

Flutter Firestore集合组查询流未更新,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我正在将Flatter与Firebase Firestore一起用于移动应用程序。以下集合组流可以工作,并且在每次更新任务字段时都会更新 Firestore.instance .collectionGroup(“任务”) .快照() .listen((QuerySnapshot任务snapshot){ 打印(“任务更改已触发”); }); 当我使用“array contains”查询集合组时,查询工作,但对任务的更改不会更新流 Firestore.instance .collectionGro

我正在将Flatter与Firebase Firestore一起用于移动应用程序。以下集合组流可以工作,并且在每次更新任务字段时都会更新

Firestore.instance
.collectionGroup(“任务”)
.快照()
.listen((QuerySnapshot任务snapshot){
打印(“任务更改已触发”);
});
当我使用“array contains”查询集合组时,查询工作,但对任务的更改不会更新流

Firestore.instance
.collectionGroup(“任务”)
.where('assignees',arrayContains:userData.id)//新查询行
.快照()
.listen((QuerySnapshot任务snapshot){
打印(“任务更改已触发”);
});

你能解释一下这种行为的原因吗?我应该怎么做才能实时获取集合组查询结果?是否有我应该考虑的索引设置?

最终发现了发生了什么。 Firebase通常会输出一条错误消息,其中包含一个URL,用于在Firebase“索引”部分中设置所需的

豁免。但是当我使用
collectionGroup().snapshots().listen()
时,没有出现错误消息

然后我调用了
collectionGroup().getDocuments()
,只是想看看它是否正常工作,然后弹出了一个带有豁免URL的错误。设置该豁免后,
collectionGroup().snapshots().listen()
再次开始工作


我认为这个技巧对某些人很有用。

userData.id
受让人中的元素的数据类型相同吗?
?是@ShababbKarim,当我重新加载我的应用程序时,查询就像预期的那样工作。问题是流没有得到更新。请查明发生了什么。看看我的答案。