【问题标题】:Changing To Retrieve Data in Real Time更改为实时检索数据
【发布时间】:2021-07-21 10:12:00
【问题描述】:

在此代码中,我可以在开始运行此页面后从 Firestore 中检索一次数据。是否可以使其实时运行,从而能够实时从 Firestore 获取所有数据?

Future getMarker() async{
    Firestore.instance.collection('markers').getDocuments().then((myData){
      if(myData.documents.isNotEmpty){
        for (int i = 0; i < myData.documents.length; i++){
          initMarker(myData.documents[i].data, myData.documents[i].documentID);
        }
      }
    });
  }

当我将getDocuments() 更改为snapshots() 时,方法then() 将给出一个错误,指出then() 不是流类型。或者有什么方法可以解决这个问题。提前谢谢你。

【问题讨论】:

    标签: firebase flutter google-cloud-firestore real-time-data


    【解决方案1】:

    doc 中所述,一种选择是使用Streamlisten 方法,该方法由snapshots() 方法返回。

    该文档还显示了一个带有另一个选项的示例:使用StreamBuilder,它“有助于自动管理流状态并在您的应用中不再使用流时对其进行处置”。

    【讨论】:

    • 感谢您提供的文档。我还有 1 个问题。是否可以在不使用“StreamBuilder”的情况下获得相同的功能(实时检索数据)?有没有其他选择?或者是否有其他相关文件。非常感谢您的友好回答。
    • 是的,您可以使用答案顶部提到的listen 方法。见stackoverflow.com/questions/58942707/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2017-10-06
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多