Android 从颤振应用程序中的QuerySnapshot变量提取信息
这段代码在futurebuilder中运行良好,我得到了一个正确的列表视图。 但我想查看文档并在控制台中打印详细信息。我不知道如何使用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
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的链接