gpt4 book ai didi

firebase - 使用当前用户更新 Flutter App 中的 Firebase 时出现问题

转载 作者:行者123 更新时间:2023-12-05 09:08:15 25 4
gpt4 key购买 nike

我刚刚在 Flutter 应用程序中更新了 Google Firebase Auth,因为我遇到了一些扭曲的 SDK 错误,但现在我得到了

Error: 'currentUser' isn't a function or method and can't be invoked.
var user = await _firebaseAuth.currentUser();

我查看了迁移指南,了解到 currentUser() 现在是通过 currentUser getter 同步的。但我不确定我现在应该如何更改我的代码来解决这个问题。

我的代码

 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;
}
}

最佳答案

看起来您使用的是带有过时代码的最新版本的 FlutterFire 库。

在以前版本的库中,currentUser() 是一个方法,您必须await。在最新版本的库中,它是一个属性,您不再需要等待它的结果。

所以

var user = _firebaseAuth.currentUser;

另请参阅 using Firebase Authentication in your Flutter app 上的文档,特别是关于 monitoring authentication state 的部分因为它提供了一种监听身份验证状态更新的方法。

关于firebase - 使用当前用户更新 Flutter App 中的 Firebase 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63684365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com