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,然后该值传递到流。我对颤振不太熟悉,但您可以检查,您将看到一个具有等待操作的流这可能会有帮助。我也发现,这在这种情况下可能会有用。