Flutter Firebase Auth / Google_sign_in 无法使用 statuscode=CANCELED 登录

Posted

技术标签:

【中文标题】Flutter Firebase Auth / Google_sign_in 无法使用 statuscode=CANCELED 登录【英文标题】:Flutter Firebase Auth / Google_sign_in fail to login with statuscode=CANCELED 【发布时间】:2019-02-26 01:18:24 【问题描述】:

这是我的 pubspec.yaml。我正在使用 Flutter:

dependencies:
flutter:
    sdk: flutter

cupertino_icons: ^0.1.2
shared_preferences: ^0.4.2
json_serializable: ^1.2.1
camera: ^0.2.3
path_provider: ^0.4.1
simple_permissions: ^0.1.6
share: ^0.5.3
#Google Sign_In
firebase_auth: ^0.5.20
google_sign_in: ^3.0.5

我无法使用 Google 登录方法进行身份验证。该窗口正常显示,并且在我的应用程序引发错误之后:

PlatformException(sign_in_failed, StatusstatusCode=CANCELED, resolution=null, null)

网上没找到解决办法,谁能帮帮我?

以下是我的_signIn()方法

Future<FirebaseUser> _signIn() async 

GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
GoogleSignInAuthentication gSA = await googleSignInAccount.authentication;

FirebaseUser user = await auth.signInWithGoogle(
    idToken: gSA.idToken, accessToken: gSA.accessToken);

print("User Name : $user.displayName");
return user;

在我调用 GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn(); 后我的代码崩溃了,所以我猜是我的设置有误。

我就是这样称呼_signIn()

MaterialButton(
        child: Text("Google Sign-In"),
        onPressed: ()
          _signIn()
            .then((FirebaseUser user) => print(user))
            .catchError((e) => print(e));
        ,
      ),

我已经在线删除了谷歌开发控制台上的 Firebase-Project 并创建了一个新的。我也尝试了匿名登录 -> 工作正常

感谢任何帮助

【问题讨论】:

【参考方案1】:

我刚刚遇到了同样的问题。 我就是这样解决的。

1) 获取您的 SHA1 证书密钥。 (见https://developers.google.com/android/guides/client-auth)

2) 将 SHA1 密钥放在 Firebase 控制台中

3) 重新构建你的 Flutter 应用,然后重试。它现在应该可以工作了。

【讨论】:

您确定遇到了同样的问题吗?我的状态码已取消!它对我不起作用。【参考方案2】:

好的,所以我设法在 release 模式下使用 APK 解决了这个问题!

你必须做什么:

在发布模式下构建您的应用,并将 SHA1 或 SHA256 添加到您的 firebase 项目中。

如果您不知道如何prepare your app for release,您可以快速完成。

【讨论】:

如果您以这种方式解决问题.. 看起来,至少 Gainz 的回答对您解决问题很有帮助。如果您仔细查看描述,您可能会在没有发布模式的情况下解决该问题。即使您处于开发模式,您也可以添加 SHA 的东西。只是我个人的感觉是,您应该选择 Gainz 的答案作为答案,并将您的解释添加为评论而不是答案。 @Vincent 不,因为他的解决方案对我来说并不成功。

以上是关于Flutter Firebase Auth / Google_sign_in 无法使用 statuscode=CANCELED 登录的主要内容,如果未能解决你的问题,请参考以下文章

flutter-firebase_auth-gradlew.bat 异常退出

Flutter Firebase Auth 新更新 [重复]

Flutter Firebase auth facebook无法正常工作

Flutter 应用程序错误将尝试连接 Firebase 和 Auth

如何在 Flutter 中从 Firebase 获取当前用户 ID

在 iOS 中使用 LinkedIn + firebase auth + Flutter 登录