gpt4 book ai didi

firebase - 不能将 'AuthResult'类型的值分配给 'FirebaseUser'类型的变量

转载 作者:行者123 更新时间:2023-12-03 03:24:15 24 4
gpt4 key购买 nike

我正在使用Firebase Google登录选项在我的项目中实现google登录方法,当在我的代码中添加以下代码行时,我将看到以下错误:

A value of type 'AuthResult' can't be assigned to a variable of type 'FirebaseUser'

这是我的代码:

final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
final GoogleSignIn _googlSignIn = new GoogleSignIn();

Future<FirebaseUser> _signIn(BuildContext context) async {

Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('Sign in'),
));

final GoogleSignInAccount googleUser = await _googlSignIn.signIn();
final GoogleSignInAuthentication googleAuth =await googleUser.authentication;

final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);

FirebaseUser userDetails = await _firebaseAuth.signInWithCredential(credential).user;
ProviderDetails providerInfo = new ProviderDetails(userDetails.providerId);

List<ProviderDetails> providerData = new List<ProviderDetails>();
providerData.add(providerInfo);

UserDetails details = new UserDetails(
userDetails.providerId,
userDetails.displayName,
userDetails.photoUrl,
userDetails.email,
providerData,
);

Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new Profile(detailsUser: details),
),
);
return userDetails;
}

有人可以告诉我是什么问题。

最佳答案

方法firebaseAuth.signInWithCredential(credential)返回类型为AuthResult的值,因此您需要执行以下操作:

AuthResult userDetails = await _firebaseAuth.signInWithCredential(credential);

另一种替代方法是对您的代码更好的替代方法,因为 signInWithCredential返回 AuthResult,并且由于 AuthResult类包含 user类型的实例变量 FirebaseUser,因此您可以执行以下操作:
FirebaseUser userDetails = (await _firebaseAuth.signInWithCredential(credential)).user;

https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_auth/firebase_auth/lib/src/auth_result.dart#L18

关于firebase - 不能将 'AuthResult'类型的值分配给 'FirebaseUser'类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59453599/

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