我的函数类型是Stream<QuerySnapshot>
,用于实时更新数据。在该函数内部,我尝试从Cloud Firestore获取数据。我想使用该数据更新到我的应用程序。问题是退出then()
后我得到的数据为空。我知道then()
仅返回null。如何将数据保留在then()
之外?
任何帮助将不胜感激。
Stream<QuerySnapshot> getUsersTripsStreamSnapshots(BuildContext context)async*{
String data ;
DocumentReference doc;
final uid = await Provider.of(context).auth.getCurrentUID();
DocumentReference documentReference = Firestore.instance.collection("users").document(uid);
documentReference.get().then((datasnapshot){
if(datasnapshot.exists){
data = datasnapshot.data["restaurant"].toString();
setdata(data);
print(data); }
});
yield* Firestore.instance.collection('restaurants').document(getdata()).collection('trips').snapshots(); }
void setdata(String data) {
realdata=data;
print(realdata);
}
String getdata(){
return realdata;
}
这是我尝试过的。之后(((datasnapshot){}