【问题标题】:My Flutter firebase sign out is clashing with my booking system我的 Flutter firebase 注销与我的预订系统发生冲突
【发布时间】:2020-05-13 14:03:24
【问题描述】:

我正在制作一个用于预订的应用,但我收到关于我退出的错误,这在我添加预订系统之前没有发生。

══╡ EXCEPTION CAUGHT BY PROVIDER ╞══════════════════════════════════════════════════════════════════
I/flutter ( 6595): The following assertion was thrown:
I/flutter ( 6595): An exception was throw by _MapStream<FirebaseUser, User> listened by
I/flutter ( 6595): StreamProvider<User>, but no `catchError` was provided.
I/flutter ( 6595): 
I/flutter ( 6595): Exception:
I/flutter ( 6595): NoSuchMethodError: The getter 'uid' was called on null.
I/flutter ( 6595): Receiver: null
I/flutter ( 6595): Tried calling: uid

我知道这已得到解答,但我无法使用该代码,因为我的预订页面依赖于注销不需要的一行代码。 我的预订所需的身份验证页面代码:

//create user object based on firebase user
User _userFromFirebaseUser(FirebaseUser user){

   userId(user.uid);
 //if i comment the above line out my signout works but bookings not
  return user != null ? User(uid: user.uid) : null;

}

【问题讨论】:

    标签: firebase flutter dart firebase-authentication


    【解决方案1】:

    您收到该错误是因为您已经退出,因此当前没有用户登录。您需要将代码更改为以下内容:

    User _userFromFirebaseUser(FirebaseUser user){
        userId(user?.uid ?? "no user")
      return user != null ? User(uid: user.uid) : null;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2020-06-14
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      相关资源
      最近更新 更多