Firebase Firestore没有';t倾听询问(颤振)

Firebase Firestore没有';t倾听询问(颤振),firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正试图用以下代码来侦听文档更改:(flatter) 这段代码只工作一次,它会将所有正确的文档添加到列表中,但是当文档更新时,它不会做任何事情 我尝试了这段代码(没有where查询) 即使文档被更新,也能完美地工作 我想我必须建立一个索引,但是我在控制台中没有看到任何消息。 尝试手动创建一个 Indexed fields: owners (array), lastRef (descending) 我做错了什么 提前谢谢 那data.documentChanges.forEach((change

我正试图用以下代码来侦听文档更改:(flatter)

这段代码只工作一次,它会将所有正确的文档添加到列表中,但是当文档更新时,它不会做任何事情

我尝试了这段代码(没有where查询)

即使文档被更新,也能完美地工作

我想我必须建立一个索引,但是我在控制台中没有看到任何消息。 尝试手动创建一个

Indexed fields: owners (array), lastRef (descending)
我做错了什么


提前谢谢

data.documentChanges.forEach((change){
setState
调用周围对我来说是可疑的。在我看来,你应该将文档设置为状态,无论何时你的侦听器被调用

比如:

Firestore.instance
    .collection('myCollection')
    .where("owners.${myUserID}", isEqualTo: true)
    .orderBy("lastRef", descending: true)
    .snapshots()
    .listen((data) {
  setState(() {
    myList = data.documents;
  });
});

我怀疑这会改变你的查询问题,但我建议你改变这两种方式,因为这会简化你的听众,使其更为地道。

你能更新你的问题以显示:1)myUserID的值(例如,在运行查询之前打印它),2)查询应返回的文档的屏幕截图?
Indexed fields: owners (array), lastRef (descending)
Firestore.instance
    .collection('myCollection')
    .where("owners.${myUserID}", isEqualTo: true)
    .orderBy("lastRef", descending: true)
    .snapshots()
    .listen((data) {
  setState(() {
    myList = data.documents;
  });
});