【发布时间】:2019-10-25 06:52:57
【问题描述】:
我想从 firestore 获取数据并显示在文本中,但弹出错误。 Thar 错误说类型“_BroadcsastStream”不是“String”类型的子类型。 类我调用方法
void main() => runApp(MaterialApp(
home : profUser(),
));
class profUser extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home : new profiUser(),
);
}
}
class profiUser extends StatefulWidget {
@override
_profiUserState createState() => _profiUserState();
}
class _profiUserState extends State<profiUser> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.indigo,
appBar: AppBar(
title: Text('Profile'),
actions: <Widget>[
IconButton(
icon: Icon(choices[1].icon),
onPressed: (){
logOut();
Navigator.push(context,MaterialPageRoute(builder: (context)
=> myLogin()));
},
),
],
),
body: Column(
children: <Widget>[
userDetail(),
],
),
);
}
}
根据 firestore 中的数据显示文本的类
class userDetail extends StatelessWidget{
@override
Widget build(BuildContext context){
return new StreamBuilder(
stream: UniQuery().getUserDetail(),
builder: (BuildContext context, snapshot){
if(!snapshot.hasData)
return new Text('Loading..... Please wait');
var userDocument = snapshot.data;
return new Column(
children: <Widget>[
Text('Name: ' + userDocument['name']),
Text('Age: ' + userDocument['age'],toString()),
Text('Address: ' + userDocument['address']),
Text('Result: ' + userDocument['result']),
],
);
}
);
}
}
在上述代码中用于从 firestore 获取数据的 void 下方
var userID;
Future<String> getCurrentUser() async{
final FirebaseUser user = await FirebaseAuth.instance.currentUser();
// return uID != null ? uID : null;
final String uID = user.uid.toString();
return uID;
}
setUserDetail() async{
userID = await getCurrentUser();
}
【问题讨论】:
标签: flutter google-cloud-firestore