Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 如何将我未来的方法更改为流方法?_Firebase_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

Firebase 如何将我未来的方法更改为流方法?

Firebase 如何将我未来的方法更改为流方法?,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在显示我的视频集合,其中每个视频都有一个分级条形字段。视频显示在streambuilder中。所以我的问题是,我的方法是一种未来的方法,我还需要将其更改为流。 这是我的方法 onTap: () async { } else {

我正在显示我的视频集合,其中每个视频都有一个分级条形字段。视频显示在streambuilder中。所以我的问题是,我的方法是一种未来的方法,我还需要将其更改为流。 这是我的方法

  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"]);
      },
    )