Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从颤振应用程序中的QuerySnapshot变量提取信息_Android_Flutter_Dart - Fatal编程技术网

Android 从颤振应用程序中的QuerySnapshot变量提取信息

Android 从颤振应用程序中的QuerySnapshot变量提取信息,android,flutter,dart,Android,Flutter,Dart,这段代码在futurebuilder中运行良好,我得到了一个正确的列表视图。 但我想查看文档并在控制台中打印详细信息。我不知道如何使用QuerySnapshot变量实现这一点 Future getP() async { var firestore = Firestore.instance; var q = await firestore.collection('place_list').getDocuments(); print(q.documents); return q.do

这段代码在futurebuilder中运行良好,我得到了一个正确的列表视图。 但我想查看文档并在控制台中打印详细信息。我不知道如何使用QuerySnapshot变量实现这一点

Future getP() async {
  var firestore = Firestore.instance;
  var q = await firestore.collection('place_list').getDocuments();
  print(q.documents);
  return q.documents;
}
我想我得先打电话等回复,然后打印出来,有人能指导我怎么做吗


//但是我没有得到firestore数据库集合中的所有文档。前10个左右的条目将在控制台中打印//


我认为这是标准行为。如果您有一百万条记录,它就不能在控制台中打印所有记录。要检查任何特定的文档集,您必须通过查询中的where条件进行筛选。

//但我没有获得firestore DB集合中的所有文档。前10个左右的条目将在控制台中打印//


我认为这是标准行为。如果您有一百万条记录,它就不能在控制台中打印所有记录。要检查任何特定的文档集,您必须通过查询中的where条件进行筛选。

尽管答案是正确的,但当前的firebase API现在已经发生了巨大的变化,可以访问QuerySnapshot,您可以按照以下代码进行操作

FirebaseFirestore.instance
.collection('users')
.get()
.then((QuerySnapshot querySnapshot) => {
    querySnapshot.docs.forEach((doc) {
        print(doc["first_name"]);
    });
});
如果您使用的是async/await,那么首先需要解析AsyncSnapshot,然后处理它。如果您愿意:

    return FutureBuilder(
    future: PropertyService(uid:userId).getUserProperties(),
    builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
      if (snapshot.hasError) {
        return Text("Something went wrong");
      }

      if (snapshot.connectionState == ConnectionState.done) {

        snapshot.data.docs.forEach((element) {
          Property property = Property.fromJson(element.data());
        });
        return Text("Demo Text");

      }

      return LoadingPage();
    }
);

摘自

尽管答案是正确的,但当前的firebase API现在已经发生了巨大的变化,可以访问QuerySnapshot,您可以按照下面的代码进行操作

FirebaseFirestore.instance
.collection('users')
.get()
.then((QuerySnapshot querySnapshot) => {
    querySnapshot.docs.forEach((doc) {
        print(doc["first_name"]);
    });
});
如果您使用的是async/await,那么首先需要解析AsyncSnapshot,然后处理它。如果您愿意:

    return FutureBuilder(
    future: PropertyService(uid:userId).getUserProperties(),
    builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
      if (snapshot.hasError) {
        return Text("Something went wrong");
      }

      if (snapshot.connectionState == ConnectionState.done) {

        snapshot.data.docs.forEach((element) {
          Property property = Property.fromJson(element.data());
        });
        return Text("Demo Text");

      }

      return LoadingPage();
    }
);

摘自

您是否尝试过q.documents.toString?让我知道它是否有效,我会将其作为anwerYes发布,我尝试过它…它打印的内容与字符串相同,而不是列表/数组@你试过q.documents.toString吗?让我知道它是否有效,我会将其作为anwerYes发布,我尝试过它…它打印的内容与字符串相同,而不是列表/数组@亨诺基斯,它工作得很好。但是我没有得到firestore数据库集合中的所有文档。控制台将打印前10个左右的条目。但我在FutureBuilderListView中获得了全部300个条目…@IROC我很高兴它能工作,这是另一个问题。发布另一个关于没有获得全部数据的问题,并在这里评论链接,我将尽力在那里提供帮助。这是问题@HenokYes的链接,它运行良好。但是我没有得到firestore数据库集合中的所有文档。控制台将打印前10个左右的条目。但我在FutureBuilderListView中获得了全部300个条目…@IROC我很高兴它能工作,这是另一个问题。发布另一个关于没有获得全部数据的问题,并在这里评论链接,我将尽力在那里提供帮助。这是问题@Henok的链接