Firebase Firestore退货&x27;querysnapshot的实例';即使集合不存在
Firebase Firestore退货&x27;querysnapshot的实例';即使集合不存在,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,显然,集合('aaaaaaaa')甚至不存在,那么为什么它不返回null?您应该使用hasData检查是否有数据: StreamBuilder( stream: Firestore.instance.collection('aaaaaaaaaaaaaaaa').snapshots(), builder: ( context , snap){ if(snap.data == null){ print('A'); } if(sna
显然,集合('aaaaaaaa')甚至不存在,那么为什么它不返回null?您应该使用
hasData
检查是否有数据:
StreamBuilder(
stream: Firestore.instance.collection('aaaaaaaaaaaaaaaa').snapshots(),
builder: ( context , snap){
if(snap.data == null){
print('A');
}
if(snap.data != null){
print(snap.data);
print('B');
}
StreamBuilder(
流:Firestore.instance.collection('aaaaaaaaaa').snapshots(),
生成器:(上下文,异步快照){
if(snapshot.hasData){
印刷品(“a”);
}否则{
返回文本(“无数据”);
}
返回循环ProgressIndicator();
},
),
查询不存在(或空)的集合不是错误。因此,当没有结果时,Firestore会给您一个空的QuerySnapshot
,而不是一个错误
要检测是否有任何结果,请检查
QuerySnapshot
是否有任何文档(FlatterFire似乎没有包装本机。出于某种原因,它的行为是这样的。为什么不检查长度或其他参数以检查其是否为null。仍然得到相同的结果。如果集合不存在,那么为什么它不返回null?它应该不返回任何数据,如果使用我的代码,您得到了什么?当我尝试获取该集合中的文档将返回空的DocumentSnapshot
。因此我认为它从不返回null,那么如何检查它是否为null?我不确定“空DocumentSnapshot”是什么意思如果您snap.data.documents
包含任何文档,则表示集合不是空的。如果没有文档,Firebase将不会返回DocumentSnapshot
。
StreamBuilder(
stream: Firestore.instance.collection('aaaaaaaaaaaaaaaa').snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData) {
print("a");
} else{
return Text("No data");
}
return CircularProgressIndicator();
},
),