类型为'的值;AuthResult';can';不能分配给类型为';FirebaseUser';
我正在使用Firebase google登录选项在我的项目中实现google登录方法,当在我的代码中添加以下行时,它会向我抛出如下错误:类型为'的值;AuthResult';can';不能分配给类型为';FirebaseUser';,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我正在使用Firebase google登录选项在我的项目中实现google登录方法,当在我的代码中添加以下行时,它会向我抛出如下错误: A value of type 'AuthResult' can't be assigned to a variable of type 'FirebaseUser' 这是我的密码: final FirebaseAuth\u FirebaseAuth=FirebaseAuth.instance; 最终GoogleSignIn_GoogleSignIn=新Go
A value of type 'AuthResult' can't be assigned to a variable of type 'FirebaseUser'
这是我的密码:
final FirebaseAuth\u FirebaseAuth=FirebaseAuth.instance;
最终GoogleSignIn_GoogleSignIn=新GoogleSignIn();
未来登录(构建上下文)异步{
Scaffold.of(上下文).showSnackBar(新的SnackBar(
内容:新文本(“登录”),
));
final GoogleSignInAccount googleUser=wait_googlesignin.signIn();
最终GoogleSignInAuthentication googleAuth=等待googleUser.authentication;
final AuthCredential credential=GoogleAuthProvider.getCredential(
accessToken:googleAuth.accessToken,
idToken:googleAuth.idToken,
);
FirebaseUser userDetails=等待\u firebaseAuth.signInWithCredential(credential).user;
ProviderDetails providerInfo=新的ProviderDetails(userDetails.providerId);
列表提供程序数据=新列表();
providerData.add(providerInfo);
UserDetails=newuserdetails(
userDetails.providerId,
userDetails.displayName,
userDetails.photoUrl,
userDetails.email,
providerData,
);
导航器。推(
上下文
新材料路线(
生成器:(上下文)=>新配置文件(详细信息用户:详细信息),
),
);
返回用户详细信息;
}
谁能告诉我问题出在哪里。方法
firebaseAuth.signInWithCredential(credential)
返回类型为AuthResult
的值,因此您需要执行以下操作:
AuthResult userDetails = await _firebaseAuth.signInWithCredential(credential);
对于您的代码,另一个更好的选择是,由于使用凭据登录
返回AuthResult
,并且类AuthResult
包含类型为FirebaseUser
的实例变量user
,因此您可以执行以下操作:
FirebaseUser userDetails = (await _firebaseAuth.signInWithCredential(credential)).user;
简单解决方案(由类型更改引起):
Firebase最近将其类型“FirebaseUser”(现已折旧)更改为“User”。尝试在代码中重命名相同的名称,这应该是解决方案。在我的例子中,它适用于大多数相同的错误
最佳当我使用这行代码时,它仍然会向我抛出错误FirebaseUser userDetails=wait _firebaseAuth.signInWithCredential(credential).user;未为类Futurei定义用户。我已更新了我的代码,但仍然相同。请检查它是否应该是这样的
FirebaseUser userDetails=(wait _firebaseAuth.signInWithCredential(credential)).user你能再回答我一个问题吗?我真的很久没有回答了