Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Firebase 如何检查文档是否为空_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firebase 如何检查文档是否为空

Firebase 如何检查文档是否为空,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我有以下空文档: 据我所知,文档存在,但它是空的。 我向用户显示所有文档ID的列表,然后允许用户选择要显示数据的文档。 当用户选择此空文档时,会出现一个错误,因为我在listview中调用了null对象的length。这很公平。 我想向用户显示一个警报对话框,通知用户它是空的 child: FutureBuilder( future: snapshot, builder: (context, AsyncSnapshot<Do

我有以下空文档:

据我所知,文档存在,但它是空的。 我向用户显示所有文档ID的列表,然后允许用户选择要显示数据的文档。 当用户选择此空文档时,会出现一个错误,因为我在listview中调用了null对象的length。这很公平。 我想向用户显示一个警报对话框,通知用户它是空的

        child: FutureBuilder(
            future: snapshot,
            builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
              switch (snapshot.connectionState) {
                case ConnectionState.waiting:
                  return Center(child: CircularProgressIndicator());
                default:
                  if (snapshot.hasData) {
                    if(snapshot.data.data.length == 0) {
                      return  AlertDialog(
                        content: Text('Wrong Date', textAlign: TextAlign.center, style: TextStyle(color: Colors.black)),
                        backgroundColor: Colors.redAccent,
                        actions: [Icon(Icons.keyboard_backspace)],
                      );
                  }
child:FutureBuilder(
未来:快照,
生成器:(上下文,异步快照){
交换机(快照.连接状态){
案例连接状态。正在等待:
返回中心(子项:CircularProgressIndicator());
违约:
if(snapshot.hasData){
if(snapshot.data.data.length==0){
返回警报对话框(
内容:文本('错误日期',textAlign:textAlign.center,样式:TextStyle(颜色:Colors.black)),
背景颜色:Colors.redAccent,
操作:[图标(图标.键盘\u退格)],
);
}
这就是我现在要做的。只是检查一下文件的长度。 这对我来说似乎不合适

还有其他方法吗?

查看的API,该方法返回一组字段。如果您想知道是否没有字段,只需询问映射是否为0

检查这个:它是java,但我相信想法是一样的。
snapshot.data().length == 0