【发布时间】:2021-07-19 07:14:42
【问题描述】:
我有一个屏幕,我需要先从 Firestore 获取 JSON 文件名,然后加载资产 JSON 文件。我通常将 StreamBuilder 用于 Firestore 文档快照,并且可以使用 FutureBuilder 加载 JSON。我的问题是如何将它们结合起来?或者,有没有更好的方法来做我提到的事情?
据我所知,FutureBuilder 无法在 StreamBuilder 中正常工作,所以我猜这不是一个选择。
我从 Firestore 获取快照:
UserModel _userDataFromSnapshot(DocumentSnapshot snapshot) {
final userdata = snapshot.data();
return UserModel(
...
);
}
Stream<UserModel> get userData {
return userCollection.doc(uid).snapshots()
.map(_userDataFromSnapshot);
}
我将 JSON 加载为:
FutureBuilder(
future: DefaultAssetBundle.of(context).loadString(fileName),
builder: (context, snapshot) {
if(snapshot.hasData) {
final data = json.decode(snapshot.data.toString()).cast<String, dynamic>();
...
感谢任何帮助或评论。
【问题讨论】:
标签: flutter stream-builder flutter-futurebuilder