firebase - firebase 中基于角色的身份验证
问题描述
我尝试使用以下代码将管理员用户导航到一个特殊页面,但它给出了NoSuchMethodError
这是代码
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
final user = Provider.of<User>(context);
return StreamBuilder<DocumentSnapshot>(
stream: Firestore.instance.collection('users').document(user.uid).snapshots(),
builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot){
if(snapshot.hasError){
return Text('Error: ${snapshot.error}');
}
switch(snapshot.connectionState){
case ConnectionState.waiting: return Loading();
default:
return checkRole(snapshot.data);
}
},
);
}
Widget checkRole(DocumentSnapshot snapshot){
if(snapshot.data['category']=='admin'){
return AproveNotice();
}else{
return HomePage();
}
}
}
这是我遇到的错误
The method '[]' was called on null. Receiver: null Tried calling: []("category")
解决方案
改变这个:
case ConnectionState.waiting: return Loading();
default:
return checkRole(snapshot.data);
}
对此:
case ConnectionState.waiting: return Loading();
case ConnectionState.done: return checkRole(snapshot.data);
}
推荐阅读
- optimization - 一个变量的多个索引的pyomo约束是否可能?
- xml - XML - 使用选定的参数值来修改另一个参数中的可用值
- json - 在 Postman 中将 JSON 嵌套节点转换为 x-www-form-urlencoded
- measure - 用 python 测量从英尺和英寸到米和厘米
- javascript - 数据仅在刷新后才被删除,而不是实时删除
- python - pygame中的箭头键连续移动
- java - 如何修复登录记住我功能?
- python - 正在处理队列中的数据
- swift - 如何在 Mac OS 应用程序中处理单元测试目标中的崩溃
- python - 如何在 Python 中获取嵌套异常的消息值?