firebase - Flutter Authentication signOut - uid 被称为空错误
问题描述
我正在使用身份验证注销应用程序,但我仍然收到 uid null 错误
这是我的 signOut 方法
Future<bool> signOut() async {
try {
await _auth.signOut();
_user = null;
return true;
} catch (e) {
return false;
}
}
这是我的小部件。我可以成功注销,但是当切换到下一页时,它会给出 uid 错误并切换
actions: <Widget>[
PopupMenuButton<String>(
onSelected: (value) async {
switch (value) {
case 'Çıkış Yap':
//problem here
var provider = Provider.of<AuthServices>(context, listen: false);
await provider.signOut();
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => GirisEkrani()));
break;
case 'Profil Ayarları':
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ProfilGuncellemeEkrani()));
break;
}
},
itemBuilder: (BuildContext context) {
return {'Profil Ayarları', 'Çıkış Yap'}.map((String choice) {
return PopupMenuItem<String>(
value: choice,
child: Text(choice),
);
}).toList();
},
),
],
错误在 null 上调用了 getter 'uid'。接收方:null 尝试调用:uid
解决方案
看起来您正在使用小部件uid
中的用户GirisEkrani
。
uid
由于用户已经注销并且您已将_user
提供程序中的变量设置为 null ,因此您应该删除对其中的任何引用。
推荐阅读
- android - 来自 json 的 Flutter ListTile 标题名称
- typescript - 无法使用 v-treeview 加载孙节点 - Vuetify
- javascript - 在 Angular 中渲染 HTML/CSS/JS
- javascript - 使用 Java Script 在 JSON 中添加新项目时如何避免添加一些字符
- python - Cython-C 方法之前未在扩展类型的定义部分中声明
- mongodb - 无法将 mongo atlas 连接到 mongodb compass、shell 和 Go 应用程序
- javascript - Selenium Python 脚本检查页面上的每个按钮 - javascript 中的单页应用程序
- laravel - 跳过不在 Laravel 关系表中的行
- vb.net - 向 Zebra 标签打印机发送命令
- javascript - getTime() 与 Date.now() 有什么区别