【发布时间】:2021-10-07 20:31:18
【问题描述】:
我正在通过身份验证退出应用程序,但我仍然收到 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'。 接收方:空 尝试调用:uid
【问题讨论】:
-
我在您分享的代码中没有看到任何
.uid。您确定错误来自此代码吗? -
当我删除这部分时,问题就解决了。 var provider = Provider.of
(context, listen: false);等待提供者.signOut();登录屏幕上唯一的代码部分 var myAut =Provider.of (context,listen: false);等待 myAut.signInUserWithEmailandPassword(_email.toString(), _sifre);
标签: firebase flutter firebase-authentication flutter-provider