【问题标题】:PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
【发布时间】:2020-01-06 15:32:11
【问题描述】:

我已经搜索了整个互联网,尝试了所有可能的解决方案,但我仍然无法从我的 Flutter 应用中使用 GoogleSignIn 登录。

我尝试过的事情:
1. 新增 SHA-1 证书
2. 新增 SHA-256 证书
3. 填写 O-Auth 屏幕
4. 在 Firebase 中启用 GoogleSignIn
5. 增加支持邮箱

目前仅在调试模式下进行测试。由于该应用程序目前处于初始阶段,我还不想构建发布版本。使用调试 SHA-1 和 SHA-256 指纹。

Future<FirebaseUser> _signIn(BuildContext context) async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
    await googleUser.authentication;

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

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

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

UserDetails details = UserDetails(
    providerDetails: userDetails.user.providerId,
    userEmail: userDetails.user.email,
    userName: userDetails.user.displayName,
    photoUrl: userDetails.user.photoUrl,
    providerData: providerData);

return userDetails.user;
}

我得到错误

[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: 
PlatformException(sign_in_failed, 
com.google.android.gms.common.api.ApiException: 10: , null)
E/flutter (12322): #0      StandardMethodCodec.decodeEnvelope 
package:flutter/…/services/message_codecs.dart:564
E/flutter (12322): #1      MethodChannel.invokeMethod 
package:flutter/…/services/platform_channel.dart:316
E/flutter (12322): <asynchronous suspension>
E/flutter (12322): #2      MethodChannel.invokeMapMethod 
package:flutter/…/services/platform_channel.dart:344
E/flutter (12322): <asynchronous suspension>
E/flutter (12322): #3      GoogleSignIn._callMethod 
package:google_sign_in/google_sign_in.dart:218
E/flutter (12322): <asynchronous suspension>
E/flutter (12322): #4      GoogleSignIn._addMethodCall.<anonymous closure> 
package:google_sign_in/google_sign_in.dart:27
E/flutter (12322): #5      _rootRun  (dart:async/zone.dart:1120:38)
E/flutter (12322): #6      _CustomZone.run  (dart:async/zone.dart:1021:19)
E/flutter (12322): #7      _FutureListener.handleWhenComplete  
(dart:async/future_impl.dart:150:18)
E/flutter (12322): #8      
Future._propagateToListeners.handleWhenCompleteCallback  
(dart:async/future_impl.dart:609:39)
E/flutter (12322): #9      Future._propagateToListeners   
(dart:async/future_impl.dart:665:37)
E/flutter (12322): #10     Future._addListener.<anonymous closure>  
(dart:async/future_impl.dart:348:9)
E/flutter (12322): #11     _rootRun  (dart:async/zone.dart:1124:13)
E/flutter (12322): #12     _CustomZone.run  (dart:async/zone.dart:1021:19)
E/flutter (12322): #13     _CustomZone.runGuarded  
(dart:async/zone.dart:923:7)
E/flutter (12322): #14     _CustomZone.bindCallbackGuarded.<anonymous 
closure>  (dart:async/zone.dart:963:23)
E/flutter (12322): #15     _microtaskLoop  
(dart:async/schedule_microtask.dart:41:21)
E/flutter (12322): #16     _startMicrotaskLoop  
(dart:async/schedule_microtask.dart:50:5)
E/flutter (12322):

【问题讨论】:

    标签: android firebase flutter google-signin


    【解决方案1】:

    我知道这个问题是很久以前发布的,但如果其他人有问题,除了上述所有步骤之外,我还启用了 Google People API。确保您使用正确的电子邮件和项目。

    https://console.developers.google.com/apis/library/people.googleapis.com?q=people&id=5877a7af-1d13-4098-a53e-b5e2d7a87a4f&project=phamton-test

    【讨论】:

      【解决方案2】:

      添加依赖后是否重新构建项目?

      有时您需要在添加任何特定于平台的插件之前重新构建项目,然后才能有效使用它

      【讨论】:

      • 我建议不要在答案中使用修辞问题。他们冒着被误解为根本不是答案的风险。您正在尝试回答此页面顶部的问题,不是吗?否则请删除此帖。
      猜你喜欢
      • 2019-10-04
      • 2019-11-29
      • 2022-11-02
      • 2021-12-12
      • 2019-06-30
      • 2021-11-28
      • 2019-10-01
      • 2020-08-15
      • 2020-12-30
      相关资源
      最近更新 更多