Kai*_*han 6 firebase firebase-authentication flutter
我正在 flutter 中开发一个应用程序,我需要重新验证用户,但出现以下错误
I/flutter (14968): Error: NoSuchMethodError: The method '[]' was called on null
I/flutter (14968): Receiver: null
I/flutter (14968): Tried calling: []("user")
Run Code Online (Sandbox Code Playgroud)
下面是我用来重新验证用户身份的代码
FirebaseUser user = await FirebaseAuth.instance.currentUser();
print("User Email: ${user.email}");
AuthCredential authCredential = EmailAuthProvider.getCredential(
email: user.email,
password: _oldPassController.text,
);
print("Auth Credential: ${authCredential.toString()}");
user.reauthenticateWithCredential(authCredential).then((result) {
print("Success: $result");
}).catchError((error) {
print("Error: $error");
setState(() {
_isLoading = false;
});
if (error is PlatformException) {
PlatformException exception = error;
showAlertDialog(context, exception.message);
} else {
showAlertDialog(context, error.toString());
}
});
Run Code Online (Sandbox Code Playgroud)
小智 1
我没有解决实际问题的方法(我认为这实际上是 Firebase 到 Flutter 项目的连接问题),但我有一个适合我的解决方法。我只是使用signInWithEmailAndPassword() 代替reauthenticateWithCredential(),它似乎工作正常。就像这样:
AuthResult authResult = await FirebaseAuth.instance
.signInWithEmailAndPassword(email: email, password: password);
FirebaseUser firebaseUser = authResult.user;
Run Code Online (Sandbox Code Playgroud)
调用signInWithEmailAndPassword()后,用户将被重新验证,因为他们最近刚刚登录过。希望它有用。
| 归档时间: |
|
| 查看次数: |
4307 次 |
| 最近记录: |