Firebase 如何将我未来的方法更改为流方法?
我正在显示我的视频集合,其中每个视频都有一个分级条形字段。视频显示在streambuilder中。所以我的问题是,我的方法是一种未来的方法,我还需要将其更改为流。 这是我的方法Firebase 如何将我未来的方法更改为流方法?,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在显示我的视频集合,其中每个视频都有一个分级条形字段。视频显示在streambuilder中。所以我的问题是,我的方法是一种未来的方法,我还需要将其更改为流。 这是我的方法 onTap: () async { } else {
onTap: () async {
} else {
final value =
await FirebaseFirestore
.instance
.collection("videos")
.doc(videos.data()['id'])
.collection("uservotes")
.doc(uid)
.get();
setState(() {
votefromfirebase =
value.data()["rating"];
israting = true;
});
}
},
希望任何人都能提供帮助。在
FirebaseFirestore
中的CollectionReference
和DocumentReference
提供了一个snapshots()
方法,该方法返回一个流:
final videoDocumentStream = await FirebaseFirestore
.instance
.collection("videos")
.doc(videos.data()['id'])
.collection("uservotes")
.doc(uid)
.snapshots();
要侦听流,可能需要使用以下命令:
StreamBuilder(
流:videoDocumentStream.snapshots(),
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasError){
返回文本(“出错”);
}
if(snapshot.connectionState==connectionState.waiting){
返回文本(“加载”);
}
var userDocument=snapshot.data();
返回文本(userDocument[“rating”]);
},
)
它表示没有为类型“Object”定义运算符“[]”。尝试在快照之后定义运算符“[]”集()
。数据,已更正。it sys类“QuerySnapshot”没有实例方法“call”。Receiver:“QuerySnapshot”的实例尝试调用:call()
StreamBuilder<QuerySnapshot>(
stream: videoDocumentStream.snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text('Something went wrong');
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Text("Loading");
}
var userDocument = snapshot.data();
return Text(userDocument["rating"]);
},
)