Flutter firebase 流有数据但 returns 为空
Flutter firebase stream has data but returns null
我有一个问题,Firestore 中的一些文档具有相同的位置,并且在打印出正确的字符串时正确传递了位置,但我的 StreamBuilder 始终在 if 条件下执行 noData 函数。
Streambuilder 看起来像这样:
StreamBuilder(
stream: FilterFirebase().relatedLocationFilter(
eventDocument["location"], eventDocument["id"]),
builder: (BuildContext ctx,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData ||
snapshot.data.docs.isEmpty) {
return NoDataRelatedLocation();
} else {
return new RelatedLocationListing(
relatedLocationList: snapshot.data.docs,
);
}
},
)
我的 relatedLocationFilter 如下所示:
relatedLocationFilter(String location, String id) {
print(location);
print(id);
return FirebaseFirestore.instance
.collection("events")
.where("location", isEqualTo: location)
.where("id", isNotEqualTo: id)
.snapshots();
}
安全规则正常,没有 where 过滤器的代码工作正常。
更新:
日志:
颤振:Tj4EB68R1CwBYKPfWzcm
扑:米高梅宴会厅
扑动:1
Firestore 文档:
这是正确的预期结果。因此,尽管您的 stream
returns 是正确的值,但在您的 stream
获取数据之前,流生成器首先获取 null。
因此,如果您不想在 stream
获取真实数据之前显示 NoDataRelatedLocation
,则应将 initialData
流构建器的参数。
我有一个问题,Firestore 中的一些文档具有相同的位置,并且在打印出正确的字符串时正确传递了位置,但我的 StreamBuilder 始终在 if 条件下执行 noData 函数。
Streambuilder 看起来像这样:
StreamBuilder(
stream: FilterFirebase().relatedLocationFilter(
eventDocument["location"], eventDocument["id"]),
builder: (BuildContext ctx,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData ||
snapshot.data.docs.isEmpty) {
return NoDataRelatedLocation();
} else {
return new RelatedLocationListing(
relatedLocationList: snapshot.data.docs,
);
}
},
)
我的 relatedLocationFilter 如下所示:
relatedLocationFilter(String location, String id) {
print(location);
print(id);
return FirebaseFirestore.instance
.collection("events")
.where("location", isEqualTo: location)
.where("id", isNotEqualTo: id)
.snapshots();
}
安全规则正常,没有 where 过滤器的代码工作正常。
更新:
日志:
颤振:Tj4EB68R1CwBYKPfWzcm
扑:米高梅宴会厅
扑动:1
Firestore 文档:
这是正确的预期结果。因此,尽管您的 stream
returns 是正确的值,但在您的 stream
获取数据之前,流生成器首先获取 null。
因此,如果您不想在 stream
获取真实数据之前显示 NoDataRelatedLocation
,则应将 initialData
流构建器的参数。