Flutter和Cloud-Firestore:如何读取链接到Flutter FutureBuilder的Firestore文档

亚乔治

方案说明:使用:import'package:cloud_firestore / cloud_firestore.dart';

Cloud Firestore:一个集合“ sessionsLog”,其中包含具有以下字段的文档:“ sessionId”一个字符串“ isClosed”一个布尔值“ locationId”一个字符串和其他一些字段...

我只想检索所有带有'isClosed'错误布尔值的文档,然后执行一些操作。因此,我选择使用FutureBuilder(而不是streambuilder)进行操作:

    FutureBuilder(
    future: Firestore.instance.collection('sessionsLog')
    .where('isClosed', isEqualTo: false).getDocuments();
    builder: (ctx, sessionSnapshot) {
    return  RaisedButton(
    child: Text('Search'),
    onPressed: () async {
    //some other code here, that needs async I added on top

    if (sessionSnapshot.connectionState !=
                        ConnectionState.done) {
                      return CircularProgressIndicator();
                    }
    if (!sessionSnapshot.hasData) {i should 
                      print('nothing to show here');
                    }else {
    //the below line of code is wrong, it could be print / or Text / or any other widget
    //I've just added it for the sake of an example.
    print(sessionSnapshot.data.documents[0]['parkingLocationName']);}});}),

上面的代码不起作用,我只是为了简单的代码结果创建了它,以便能够打印我正在检索的值,所以请不要在我的代码中修复某些问题。

还要注意,在我的代码逻辑中,总是只有一个文档带有'isClosed' = false因此,我应该总是收到一个文件。

但是,如果有所不同,请给我两个示例,一个示例,如果检索到的数据包含1个单个文档,另一个示例,如果可能包含多个文档,那么我将如何对数据进行迭代。

我只希望能够以正确的方式读取/访问我接收的数据,无论是打印字段信息还是将其显示为文本。任何事情,但是在上述情况下,我该怎么做。

真的很感谢基于我的代码场景的简单示例示例。

加里·蒙哥马利

我将不使用FutureBuilder来执行此操作:

return Scaffold(
  body: Container(
    child: Center(
      child: RaisedButton(
          child: Text('Search'),
          onPressed: () {
            searchForDocs();
          }),
    ),
  ),
);

未来:

void searchForDocs() async {
await Firestore.instance
    .collection('sessionsLog')
    .where('isClosed', isEqualTo: false)
    .getDocuments()
    .then((snapshot) {
  if (snapshot.documents != null && snapshot.documents.length > 0) {
    snapshot.documents.forEach(
      (document) {
        print(document['parkingLocationName']);
      },
    );
  } else {
    print('No Documents Found');
  }
});}

我的输出:

I/flutter ( 2933): Example
I/flutter ( 2933): Example2`

如果您仍想使用FutureBuilder,请使用以下代码:

return Scaffold(
  body: Container(
    child: Center(
      child: FutureBuilder(
          future: Firestore.instance
              .collection('sessionsLog')
              .where('isClosed', isEqualTo: false)
              .getDocuments(),
          builder: (context, snapshot) {
            return RaisedButton(
                child: Text('Search'),
                onPressed: () {
                  if (!snapshot.hasData) {
                    print('Nothing to show here');
                  } else {
                    if (snapshot.data.documents != null &&
                        snapshot.data.documents.length > 0) {
                      List<DocumentSnapshot> documents =
                          snapshot.data.documents;
                      documents.forEach((document) {
                        print(document['parkingLocationName']);
                      });
                    }
                  }
                });
          }),
    ),
  ),
);

我得到的输出与以前的解决方案相同:

I/flutter ( 2933): Example
I/flutter ( 2933): Example2`

这是要验证的FirestoreFirestore

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Flutter和Cloud Firestore

来自分类Dev

如何读取文档 firestore -flutter 中的数据引用

来自分类Dev

在flutter中从cloud_firestore删除文档

来自分类Dev

Cloud Firestore查询以获取文档ID,Flutter

来自分类Dev

如何使用Flutter过滤Firestore文档?

来自分类Dev

Flutter Firestore读取过多

来自分类Dev

在Flutter Cloud Firestore中设置自定义文档ID

来自分类Dev

Cloud Firestore文档参考

来自分类Dev

Cloud Firestore:整理文档

来自分类Dev

如何从Cloud Firestore中获取user.uid等于flutter中的文档ID的数据?

来自分类Dev

如何获取文档列表而不在Flutter Cloud Firestore中侦听更改?

来自分类Dev

如何使用 flutter cloud_firestore 插件从 DocumentID 获取文档引用

来自分类Dev

如何在Flutter中设置,获取和更新数据到Cloud Firestore?

来自分类Dev

如何使用Flutter在Firestore中的uid文档中创建集合?

来自分类Dev

如何使用flutter在Firestore中的文档中添加地图?

来自分类Dev

如何在Flutter中获取Firestore文档的Documentid

来自分类Dev

如何使用flutter从文档的Firestore数组中获取数据?

来自分类Dev

Firestore查询中的Flutter传递文档ID

来自分类Dev

无法使用Flutter从Firestore检索文档

来自分类Dev

将Firestore文档转换为Flutter类

来自分类Dev

Firestore / Flutter:查询文档的子集合

来自分类Dev

Flutter:firestore 文档的未来构建器

来自分类Dev

将文档添加到Cloud Firestore中的集合中,而不会覆盖以前的文档Flutter

来自分类Dev

Flutter Firestore:集合中的特定文档 (Firestore.collection.where)

来自分类Dev

在Cloud Firestore中删除文档

来自分类Dev

Firestore文档流和更新

来自分类Dev

如何将Cloud Firestore中的单个文档字段保存到Flutter中的局部变量中?

来自分类Dev

如何从vuejs和firestore获取文档的ID?

来自分类Dev

如何在Flutter中按更改类型识别Firestore流文档?添加,删除,修改文档?

Related 相关文章

  1. 1

    Flutter和Cloud Firestore

  2. 2

    如何读取文档 firestore -flutter 中的数据引用

  3. 3

    在flutter中从cloud_firestore删除文档

  4. 4

    Cloud Firestore查询以获取文档ID,Flutter

  5. 5

    如何使用Flutter过滤Firestore文档?

  6. 6

    Flutter Firestore读取过多

  7. 7

    在Flutter Cloud Firestore中设置自定义文档ID

  8. 8

    Cloud Firestore文档参考

  9. 9

    Cloud Firestore:整理文档

  10. 10

    如何从Cloud Firestore中获取user.uid等于flutter中的文档ID的数据?

  11. 11

    如何获取文档列表而不在Flutter Cloud Firestore中侦听更改?

  12. 12

    如何使用 flutter cloud_firestore 插件从 DocumentID 获取文档引用

  13. 13

    如何在Flutter中设置,获取和更新数据到Cloud Firestore?

  14. 14

    如何使用Flutter在Firestore中的uid文档中创建集合?

  15. 15

    如何使用flutter在Firestore中的文档中添加地图?

  16. 16

    如何在Flutter中获取Firestore文档的Documentid

  17. 17

    如何使用flutter从文档的Firestore数组中获取数据?

  18. 18

    Firestore查询中的Flutter传递文档ID

  19. 19

    无法使用Flutter从Firestore检索文档

  20. 20

    将Firestore文档转换为Flutter类

  21. 21

    Firestore / Flutter:查询文档的子集合

  22. 22

    Flutter:firestore 文档的未来构建器

  23. 23

    将文档添加到Cloud Firestore中的集合中,而不会覆盖以前的文档Flutter

  24. 24

    Flutter Firestore:集合中的特定文档 (Firestore.collection.where)

  25. 25

    在Cloud Firestore中删除文档

  26. 26

    Firestore文档流和更新

  27. 27

    如何将Cloud Firestore中的单个文档字段保存到Flutter中的局部变量中?

  28. 28

    如何从vuejs和firestore获取文档的ID?

  29. 29

    如何在Flutter中按更改类型识别Firestore流文档?添加,删除,修改文档?

热门标签

归档