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 中出错了。试着帮我解决这个问题。
答案 0 :(得分:1)
我不知道您是否可以这样做,但这是一个选择:
User _userFromFirebaseUser(FirebaseUser user) {
User _user = new User();
if (user != null)
_user.uid = user.uid;
return _user;
}
根据那个响应,您可以检查用户的 de uid 是否为空,因此继续您的流程。