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
Firebase 颤振:PlatformException(错误,文档引用无效。文档引用必须有偶数个段,但<;x>;有1个,null)_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firebase 颤振:PlatformException(错误,文档引用无效。文档引用必须有偶数个段,但<;x>;有1个,null)

Firebase 颤振:PlatformException(错误,文档引用无效。文档引用必须有偶数个段,但<;x>;有1个,null),firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我的应用程序中有以下内容: stream: Firestore.instance.collection('stores').document(currentUserUID).snapshots(), builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) { if (snapshot.hasData) { return ListView.builder(

我的应用程序中有以下内容:

stream: Firestore.instance.collection('stores').document(currentUserUID).snapshots(),
  builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
     if (snapshot.hasData) {
       return ListView.builder(
         //do some stuff here with the data
       } else {
         return LoadingAnimation();
       }
     }
   }
 }
stream:Firestore.instance.collection('stores').document(currentUserUID).snapshots(),
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasData){
返回ListView.builder(
//在这里用数据做一些事情
}否则{
返回加载动画();
}
}
}
}
相当标准,但我得到上面列出的错误

我已经证明,在调用此流之前,currentUserID填充了正确的数据

在测试中,我发现这个错误可能是由以下事实引起的:在运行时,“if(snapshot.hasData){”显示快照中还没有数据。如果我做了任何事情,比如最小化应用程序并重新调整其焦点,那么所有数据都会加载。因此它只需要重新绘制

有没有一种方法可以做“等待”或者其他的事情呢?这个问题一定有一个简单的解决方案,看起来是个简单的问题,但我就是在其他线程中找不到解决方案


任何人都知道我如何在这个流上进行等待,或者在它接收到数据时强制它更新(我有点认为这是流的全部要点,但这个例子证明它没有做到这一点).

如果错误消息实际上引用了此代码,这意味着
currentUserUID
可能是一个空字符串。这是一个非常常见的错误-如果你在谷歌上搜索错误消息,你会看到许多其他人犯同样的错误


在使用前打印
currentUserUID
的值,以验证它是否包含您期望的值。

如果错误消息实际引用此代码,则意味着
currentUserUID
可能是一个空字符串。这是一个非常常见的错误-如果您在谷歌上搜索错误消息,您将我将看到许多其他人也犯同样的错误


在使用前打印
currentUserUID
的值,以验证它是否包含您期望的值。

能否添加更多关于如何获取currentUserUID值的详细信息?在上一个屏幕中,我从共享首选项中获取了它。我尝试过的获取uid的firebase方法都不起作用。因此,我选择了ke对我来说很重要,当你第一次注册时,我将uid存储为一个共享优先级。我在启动此屏幕之前就得到了这个值。当我启动此屏幕时,我为currentUserUID获得的值是Joid51Blwsra9G6tsc3Bizbzbxea2,然后传递到流。我对颤振不太熟悉,但你可以检查,你会看到一个带有
wait
操作可能会有帮助。我也发现了这一点,在这种情况下可能会很有用。你能添加更多关于如何获取currentUserUID值的详细信息吗?在上一个屏幕中,我从共享首选项中获取了它。我尝试过的获取uid的firebase方法都不起作用。因此我自己处理问题,当您首次注册时,我将uid存储为一个共享优先级。我甚至在启动此屏幕之前就获得了此值。当我启动此屏幕时,我为currentUserUID获得的值是Joid51BLWSRA9G6TSC3BizBxeA2,然后该值传递到流。我对颤振不太熟悉,但您可以检查,您将看到一个具有
等待操作的流这可能会有帮助。我也发现,这在这种情况下可能会有用。