【问题标题】:Flutter Authentication signOut - uid waas called null errorFlutter Authentication signOut - uid 被称为空错误
【发布时间】: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


【解决方案1】:

您似乎在 GirisEkrani 小部件中使用了用户的 uid

您应该删除其中对uid 的任何引用,因为用户已经退出并且您已将提供程序中的_user 变量设置为null。

【讨论】:

  • 当我删除这部分时,问题就解决了。 var provider = Provider.of(context, listen: false);等待提供者.signOut();登录屏幕上唯一的代码部分 var myAut =Provider.of(context,listen: false);等待 myAut.signInUserWithEmailandPassword(_email.toString(), _sifre);
  • 请添加提供者和登录屏幕的完整代码
猜你喜欢
  • 2020-05-11
  • 2021-06-18
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 1970-01-01
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多