我的应用程序中包含以下内容:
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();
}
}
}
}
非常标准,但出现上面列出的错误。
我已经证实在调用此流之前,currentUserID会填充正确的数据。
在测试中,我发现此错误可能是由于在运行时“ if(snapshot.hasData){”向我显示快照中还没有数据这一事实引起的。如果我做任何事情,例如最小化应用程序并重新调整焦点,所有数据都会加载。因此,只需要重绘即可。
是否有办法进行“等待”或其他操作?对于这个问题必须有一个简单的解决方案,这似乎是一个简单的问题,但是我在其他任何线程中都找不到解决方案。
任何人都对如何在此流上进行等待或在接收数据时强制其进行更新有任何想法(我认为这是流的全部要点,但是此示例证明了这一点并没有为此)。
答案 0 :(得分:2)
如果错误消息实际上引用了此代码,则表明currentUserUID
可能是空字符串。这是一个非常常见的错误-如果您在Google中搜索错误消息,则会看到许多其他人也犯了同样的错误。
在使用currentUserUID
之前先打印它的值,以确认它包含所需的值。