尝试 link 到模型的 Flutter firebase 用户问题

Flutter firebase user problem trying to link to a model

我遇到的错误:

A value of type 'UserA?' can't be returned from the method '_userFromFirebaseUser' because it has a return type of 'User'

我正在学习本教程:Flutter & Firebase App Tutorial #6 - Custom User Model

在大约 5:35 的视频中,他谈到返回 Firebase 用户对象并将其链接到模型。现在该视频已有 2 年历史,因此 Firebase 有所改进。 FirebaseUser 现在只是称为 User,但我认为在我的更改中我犯了一个错误。这是我的代码:

class AuthService{
  final FirebaseAuth _auth = FirebaseAuth.instance;

  //create user object based on firebaseuser
  User _userFromFirebaseUser(User? user) {
    return user != null ? UserA(uid: user.uid) : null;
  }

这是我的模型:

class UserA {
   final String uid;

  UserA({ required this.uid });
}

由于 FirebaseUser 现在只是称为 User 我已经将模型更改为 UserA 因为我感到困惑。

对我做错了什么有什么建议吗?

您在代码中混淆了两种类型的用户。

视频有两种类型:FirebaseUserUser,您已分别映射到UsersUserA

根据你的类型,函数应该是:

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

除了类型改变之外,如今 Dart 中还需要 ? 来指示您可以 return 一个 UserA 对象或 null.