【发布时间】:2021-08-23 12:13:07
【问题描述】:
所以,我遇到了这个问题:'snapshot' 没有从 Flutter 的 StreamBuilder 中的 Firestore 获取任何数据。$
代码如下:
StreamBuilder<Driver>(
initialData: null,
stream: DatabaseServices(uid: driver.uid).driverData,
builder: (streamContext, snapshot) {
print(driver.uid);
if (snapshot.hasData) {
Driver currentDriver = snapshot.data;
print(currentDriver.fullName);
print(currentDriver.email);
} else {
print('no data');
}
}
)
注意: stream: DatabaseServices(uid: driver.uid).driverData
-> driver 这里可以在整个代码之上正常工作,并获取驱动程序数据,例如 uid。
而且这段代码总是返回'no data'。
这里奇怪的是我在另一个屏幕上使用相同的代码(与另一种用户 -> 客户端),它工作正常,它正确获取数据。
在 Firestore 中,我有 2 个集合,Driver 和 Clients,属性几乎相同。
它甚至有一个 SubCollection 用于两个集合,它称为“Notification”,我使用 StreamBuilder 来显示通知对于 Client 和 Driver 和 它都可以正常工作。
【问题讨论】:
-
如果您在其他地方使用相同的代码并且它按预期工作,听起来问题来自上下文(小部件上方的内容)。
标签: firebase flutter google-cloud-firestore snapshot stream-builder