未定义的类';FirebaseUser';
我是个新手。我对Firebase Auth/Google Auth有问题 未定义FirebaseUser 代码: 我在AuthResult中也面临同样的问题未定义的类';FirebaseUser';,firebase,flutter,dart,firebase-authentication,google-authentication,Firebase,Flutter,Dart,Firebase Authentication,Google Authentication,我是个新手。我对Firebase Auth/Google Auth有问题 未定义FirebaseUser 代码: 我在AuthResult中也面临同样的问题 final AuthResult authResult = await _auth.signInWithCredential(credential); 跑 然后重建你的应用程序。从版本firebase\u auth0.18.0开始: 在最新版本的firebase\u auth中,类FirebaseUser更改为User,类AuthResu
final AuthResult authResult = await _auth.signInWithCredential(credential);
跑
然后重建你的应用程序。从版本firebase\u auth
0.18.0开始:
在最新版本的firebase\u auth
中,类FirebaseUser
更改为User
,类AuthResult
更改为UserCredential
。因此,请将代码更改为以下内容:
Future<User> currentUser() async {
final GoogleSignInAccount account = await googleSignIn.signIn();
final GoogleSignInAuthentication authentication =
await account.authentication;
final GoogleAuthCredential credential = GoogleAuthProvider.credential(
idToken: authentication.idToken,
accessToken: authentication.accessToken);
final UserCredential authResult =
await _auth.signInWithCredential(credential);
final User user = authResult.user;
return user;
}
以及:
firebaseUser.updateProfile
方法的UserUpdateInfo
类的弃用。
例如:
现在
从2020年9月起,这可以是您的电子邮件和密码登录功能。Initialze应用程序是一种新引入的方法,在使用任何其他firebase方法之前,我们必须至少调用一次
Future<void> signin() async {
final formState = _formkey.currentState;
await Firebase.initializeApp();
if (formState.validate()) {
setState(() {
loading = true;
});
formState.save();
try {
print(email);
final User user = (await FirebaseAuth.instance
.signInWithEmailAndPassword(email: email, password: password))
.user;
} catch (e) {
print(e.message);
setState(() {
loading = false;
});
}
}
}
未来登录()异步{
final formState=_formkey.currentState;
等待Firebase.initializeApp();
if(formState.validate()){
设置状态(){
加载=真;
});
formState.save();
试一试{
打印(电子邮件);
最终用户用户=(等待FirebaseAuth.instance
.使用电子邮件和密码登录(电子邮件:电子邮件,密码:密码))
.用户;
}捕获(e){
打印(电子信息);
设置状态(){
加载=假;
});
}
}
}
在最新版本的firebase_-auth中,类FirebaseUser更改为User,类AuthResult更改为UserCredentail。因此,将FirebaseUser更改为User自firebase\u auth 0.18.0
以来,类FirebaseUser
更改为User您是否在firebase google登录方法中设置了?是的,我正在尝试将google登录添加到我的appWell书面回答中,但是当我试图登录到用户直到他注销时,我得到了一个错误。我请求你,你能回答这个问题吗?我被困在这里,请给我一个方向,因此添加UserUpdateInfo
的弃用,它现在是firebaseUser.updateProfile
请编辑答案,我将接受编辑@tiagosanto令人印象深刻的答案。谢谢亲爱的:)谷歌已经更新了更新个人资料的每个属性的代码。例如,如果用户想要更改显示名称,那么代码将类似于firebaseUser.updateDisplayName(名称)代码>谢谢。
flutter pub get
Future<User> currentUser() async {
final GoogleSignInAccount account = await googleSignIn.signIn();
final GoogleSignInAuthentication authentication =
await account.authentication;
final GoogleAuthCredential credential = GoogleAuthProvider.credential(
idToken: authentication.idToken,
accessToken: authentication.accessToken);
final UserCredential authResult =
await _auth.signInWithCredential(credential);
final User user = authResult.user;
return user;
}
FirebaseAuth.instance.authStateChanges().listen((event) {
print(event.email);
});
var user = FirebaseAuth.instance.currentUser;
print(user.uid);
Future updateName(String name, FirebaseUser user) async {
var userUpdateInfo = new UserUpdateInfo();
userUpdateInfo.displayName = name;
await user.updateProfile(userUpdateInfo);
await user.reload();
}
import 'package:firebase_auth/firebase_auth.dart' as firebaseAuth;
Future updateName(String name, auth.User firebaseUser) async {
firebaseUser.updateProfile(displayName: name);
await firebaseUser.reload();
}
Future<void> signin() async {
final formState = _formkey.currentState;
await Firebase.initializeApp();
if (formState.validate()) {
setState(() {
loading = true;
});
formState.save();
try {
print(email);
final User user = (await FirebaseAuth.instance
.signInWithEmailAndPassword(email: email, password: password))
.user;
} catch (e) {
print(e.message);
setState(() {
loading = false;
});
}
}
}