【问题标题】:A value of type 'Null' can't be returned from the method '_userFromFirebaseUser' because it has a return type of 'User'无法从方法“_userFromFirebaseUser”返回“Null”类型的值,因为它的返回类型为“User”
【发布时间】:2021-06-10 19:43:18
【问题描述】:
import "package:firebase_auth/firebase_auth.dart";
import 'package:signup/models/user.dart';

class Auth {
  final FirebaseAuth _auth = FirebaseAuth.instance;

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

  Stream<User> get user {
    return _auth.onAuthStateChanged
        .map(_userFromFirebaseUser);
  }

  //anonomously

  Future signInAnon() async {
    try {
      AuthResult result = await _auth.signInAnonymously();
      FirebaseUser user = result.user;
      return _userFromFirebaseUser(user);
    } catch (e) {
      print(e.toString());
      return null;
    }
  }
  //signin with pwd

  //register with pwd

  //sign-out

}

我在使用 _userFromFirebaseUser 方法时出错。它是说它不能返回一个空值,如果我使用自动校正选项来纠正它

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

但我在 getter 中遇到错误。试着帮助我。

【问题讨论】:

  • 你想用那个方法达到什么目的?
  • "I gotter in getter" 更新后的代码有什么错误?

标签: firebase flutter dart


【解决方案1】:

我不知道您是否可以这样做,但可以选择:

User _userFromFirebaseUser(FirebaseUser user) {
    User _user = new User();
    if (user != null)
        _user.uid = user.uid;
    return _user;
  }

有了这个响应,你可以检查用户的de uid是否为空,所以继续你的流程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-14
    • 2021-10-02
    • 2022-01-26
    • 2022-01-26
    • 2021-08-20
    • 1970-01-01
    • 2022-01-15
    • 2021-07-12
    相关资源
    最近更新 更多