【问题标题】:Cannot return null in Users _userFromFirebaseUser(User user) function?无法在 Users _userFromFirebaseUser(User user) 函数中返回 null?
【发布时间】:2021-11-26 06:17:09
【问题描述】:

我不知道为什么 _userFromFirebaseUser 函数不允许我返回 null。不仅如此,当我将_userFromFirebaseUser 传递给map() 函数时出现错误?

final FirebaseAuth _auth = FirebaseAuth.instance;

//user object based on FirebaseUser

Users _userFromFirebaseUser(User user){
    if (user != null){
       return Users(uid: user.uid); 
    }
    return null;
}

//auth change user stream
Stream<Users> get user {
    return _auth.authStateChanges().map(_userFromFirebaseUser);
}

【问题讨论】:

标签: dart google-cloud-firestore firebase-authentication


【解决方案1】:

通过添加“?”使返回类型可以为空

Users? _userFromFirebaseUser(User user){
  if (user != null){
    return Users(uid: user.uid); 
  }
  return null;
}

  
Stream<Users?> get user {
  return _auth.authStateChanges().map(_userFromFirebaseUser);
}

【讨论】:

  • 如果我将返回类型设为可为空,那么当我 .map(_userFromFirebaseUser) 时,我会收到一条错误消息,提示“无法将参数类型'用户函数(用户)'分配给参数类型'用户函数(用户?)'。”
  • auth.authStateChanges().map(_userFromFirebaseUser!) 像这样试试
  • 我修正了错误!谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-05-11
  • 2018-02-18
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 2021-10-02
  • 2013-12-15
相关资源
最近更新 更多