snapshot returns StreamBuilder flutter 中的数据总是空的
snapshot returns always empty data in StreamBuilder flutter
所以,我面临这个问题:'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。
并且此代码始终returns'无数据'。
这里的奇怪之处在于我在另一个中使用了 相同的代码(与另一种用户 -> Client)屏幕,正常工作,正确获取数据。
而在 Firestore 中,我有 2 个集合,Driver 和 Clients,几乎具有相同的属性。
它甚至有一个用于两个集合的 SubCollection,它称为“Notification”,我正在使用 StreamBuilder 显示 Client 和 Driver 的通知 它正常工作 .
问题已解决,问题出在我用另一个集合(客户端)中使用的错误名称调用它的某个属性中,我忘了更改它。
所以,我面临这个问题:'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。
并且此代码始终returns'无数据'。
这里的奇怪之处在于我在另一个中使用了 相同的代码(与另一种用户 -> Client)屏幕,正常工作,正确获取数据。
而在 Firestore 中,我有 2 个集合,Driver 和 Clients,几乎具有相同的属性。
它甚至有一个用于两个集合的 SubCollection,它称为“Notification”,我正在使用 StreamBuilder 显示 Client 和 Driver 的通知 它正常工作 .
问题已解决,问题出在我用另一个集合(客户端)中使用的错误名称调用它的某个属性中,我忘了更改它。