【发布时间】:2019-04-14 10:31:27
【问题描述】:
在我的搜索中,有一些方法可以做到这一点。一种方法是同时使用FutureBuilder 和StreamBuilder。但我想避免在 FutureBuilder 中嵌套 StreamBuilder?
我尝试创建一个方法并从流生成器中调用它。
_getData() async{
FirebaseUser user = await FirebaseAuth.instance.currentUser();
String uid = user.uid.toString();
var snapshots =
Firestore.instance.collection('userinfo').document(uid).snapshots();
return snapshots;
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: Text('Retrieve Text Input'),
),
body: new Container(
padding: EdgeInsets.only(top: 20.0, left: 10.0, right: 10.0),
child: new StreamBuilder(
stream: _getData(),
builder: (context, snapshot) {
if (snapshot.hasData) {
var userDocument = snapshot.data;
return new Column(
children: <Widget>[
TextFormField(
initialValue: userDocument["name"].toString(),
//controller: _AdContr,
decoration: new InputDecoration(
labelText: 'Name',
fillColor: Colors.white,
border: new OutlineInputBorder(
borderRadius: new BorderRadius.circular(25.0),
borderSide: new BorderSide(),
),
//fillColor: Colors.green
),
),
SizedBox(height: 20),
TextFormField(
//initialValue: Text(userDocument["Surname"]).toString(),
//controller: _AdContr,
decoration: new InputDecoration(
labelText: 'Surname',
fillColor: Colors.white,
border: new OutlineInputBorder(
borderRadius: new BorderRadius.circular(25.0),
borderSide: new BorderSide(),
),
//fillColor: Colors.green
),
)
],
);
}
}),
),
);
}
但我收到此错误:
类型“未来”不是类型“流”的子类型
我该如何解决这个问题?
【问题讨论】:
标签: dart flutter google-cloud-firestore