是否可以从firebase中获取数据并将其存储为字符串,例如在flutter中?
我希望我的应用程序具有基于角色的用户,每个用户都有一个角色和一个页面。 firebase身份验证仅包含用户名和密码。在我的数据库中,我有“用户”集合,UID用作文档的ID,我想查询文档并获取角色值并将其存储为字符串形式的变量。 http://prntscr.com/kwcylt
Container(
height: 50.0,
child: Material(
borderRadius: BorderRadius.circular(20.0),
shadowColor: Colors.greenAccent,
color: Colors.green,
elevation: 7.0,
child: GestureDetector(
onTap: () {
FirebaseAuth.instance
.signInWithEmailAndPassword(
email: email,
password: password)
.then((FirebaseUser user) {
var userRole = Firestore.instance.collection('Users').document(user.uid).toString();
if(userRole['Role'].toString().compareTo("Admin"))
Navigator.of(context).pushReplacementNamed('/AdminTabs');
else Navigator.of(context).pushReplacementNamed('/UserTabs');
})
.catchError((e) {
print(e);
});
},
我希望userRole包含Firebase中的数据
答案 0 :(得分:1)
像这样更新代码,它将起作用:您基本上是在运行“检查文档引用”而不是“文档快照”。
.then((FirebaseUser user) {
Firestore.instance.collection('Users')
.document('user.uid').get().then((userRole){
if(userRole['Role'].toString().contains("Admin")){
Navigator.of(context).pushReplacementNamed('/AdminTabs');
}
else {Navigator.of(context).pushReplacementNamed('/UserTabs');}
});
})
.catchError((e) {
print(e);
});
},