首页 > 解决方案 > 如何在 Flutter 中从 Firebase 获取文档?

问题描述

我正在处理 Flutter 中的 Futurebuilder,我想创建一个 Future 函数,该函数将从我的 Firebase 中获取数据。之后,我想在文本小部件中使用该数据,因此我尝试编写此函数以从 firebase 获取数据。


Future getData() async {
  var fb = Firestore.instance;

  DocumentSnapshot dr =  (await fb.collection("records").document("the record").get());

  return dr.toString();
}

但是当我尝试在 FutureBuilder 中使用该数据时,我只使用了“DocumentSnapsot”文本的实例。

在这里你可以看到我的 FutureBuilder 代码

 body: Center(
        child: FutureBuilder(
          future: getData(),
          builder: (_ ,snapshot){

            if(snapshot.connectionState==ConnectionState.waiting) {
              return RaisedButton(
                child: Text("loading" ),
                onPressed: null,
              );
            }


            if(snapshot.connectionState==ConnectionState.done) {
              return RaisedButton(
                child: Text(snapshot.data),
                onPressed: () {},
              );
            }




            return null;
          }

这是运行程序后的结果:

跑完之后

另外,这是我的火力基地。我只想在程序内部达到并操作 0 值。

在此处输入图像描述

标签: androidfirebasefluttergoogle-cloud-firestore

解决方案


DocumentSnapshot toString方法不提供您尝试检索的文档中包含的数据。要从 a 获取文档中的数据DocumentSnapshot, do dr.data,它返回 aMap包含存储在文档中的字段和这些字段的关联数据。这应该在您的getData()方法中完成。

Returns的toString方法,因此为什么您的按钮显示的是它而不是您想要的。DocumentSnapshot"Instance of 'DocumentSnapshot'"


推荐阅读