Alm*_*ren 2 firebase firebase-authentication flutter
我刚刚在 Flutter 应用程序中更新了 Google Firebase Auth,因为我遇到了一些编写的 SDK 错误,但现在我得到了
Error: 'currentUser' isn't a function or method and can't be invoked.
var user = await _firebaseAuth.currentUser();
Run Code Online (Sandbox Code Playgroud)
我查看了迁移指南并了解到currentUser()现在通过 currentUser 获取器同步。但我不确定我现在应该如何更改我的代码来解决这个问题。
我的代码
class Auth implements BaseAuth {
final auth.FirebaseAuth _firebaseAuth = auth.FirebaseAuth.instance;
@override
Future<String> signIn(String email, String password) async {
var result = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
var user = result.user;
return user.uid;
}
@override
Future<String> signUp(
String email, String password, String name, String company) async {
final userReference = FirebaseDatabase.instance.reference().child('users');
var result = await _firebaseAuth.createUserWithEmailAndPassword(
email: email, password: password);
var user = result.user;
await userReference
.child(user.uid)
.set(User(user.uid, email, name, company).toJson());
return user.uid;
}
@override
Future<auth.User> getCurrentUser() async {
var user = await _firebaseAuth.currentUser();
return user;
}
@override
Future<void> signOut() async {
return _firebaseAuth.signOut();
}
@override
Future<void> sendEmailVerification() async {
var user = await _firebaseAuth.currentUser();
await user.sendEmailVerification();
}
@override
Future<void> resetPassword(String email) async =>
await _firebaseAuth.sendPasswordResetEmail(email: email);
@override
Future<bool> isEmailVerified() async {
var user = await _firebaseAuth.currentUser();
return user.isEmailVerified;
}
}
Run Code Online (Sandbox Code Playgroud)
看起来您使用的是带有过时代码的最新版本的 FlutterFire 库。
在以前版本的库中,currentUser()是一种方法,您必须这样做await。在库的最新版本中,它是一个属性,您不再需要等待它的结果。
所以
var user = _firebaseAuth.currentUser;
Run Code Online (Sandbox Code Playgroud)
另请参阅有关在 Flutter 应用程序中使用 Firebase 身份验证的文档,特别是有关监控身份验证状态的部分,因为它提供了一种侦听身份验证状态更新的方法。
| 归档时间: |
|
| 查看次数: |
943 次 |
| 最近记录: |