Ars*_*yan 34 android firebase-authentication
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class); //exception is here
// Signed in successfully, show authenticated UI.
System.out.println("google token ---> " + account.getIdToken());
} catch (ApiException e) {
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information about this error.
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
Joh*_*son 59
如果您正在使用Firebase并尝试debug app:
1.首先,获取SHA-1调试密钥:
Gradle(从右侧面板,您将看到Gradle Bar)TasksAndroidsigningReport(你会得到SHA-1和MD5)2.将新凭据添加到API控制台
OAuth Client IDAndroid client (for debug)示例)SHA-1调试密钥3.将密钥添加到Firebase项目中:
转到Project settings- > SHA certificate fingerprints- >添加SHA-1调试应用程序的密钥.
然后,您可以google-services.json在Android项目中更新您的文件.
它对我有用.
boj*_*jan 14
此状态代码表示您提供未知的服务器客户端ID.在项目的https://console.developers.google.com/apis/credentials中,您可能需要生成:OAuth客户端ID - > Web应用程序,并在Android应用中使用此Web应用程序客户端ID.
ApiException 错误代码 10 是开发人员错误。当您的 firebase 应用程序配置不正确时,您会收到此错误。一种确定的情况是,当您想将 Firebase 身份验证与 Google Signin 一起使用时,您不为您的 Android 应用程序提供 SHA1 指纹。(这是 Google 登录的要求)。因此,提供 SHA1 指纹,将 google-services.json 配置文件下载到您的应用程序文件夹并构建。你应该很高兴去。
Google 登录会在您连接的 iOS 和网络应用程序上自动配置。要为您的 Android 应用程序设置 Google 登录,您需要在项目设置中为每个应用程序添加 SHA1 指纹。
查看常见状态错误代码
小智 7
别忘了添加
<application
...
<meta-data
android:name="com.google.android.gms.wallet.api.enabled"
android:value="true" />
...
</application>
Run Code Online (Sandbox Code Playgroud)
在您的清单文件应用程序标签下。就我而言,问题是因为缺少这条线。
我的问题是尝试使用 Google Sign-In 但我不小心在 Firebase 中输入了错误的 SHA1。尝试运行Gradle > Your app name > Tasks > android > signingReport,获取您的 SHA1 密钥并将其与 Firebase 上的密钥进行比较。如果它们不同,请更改 Firebase SHA1 密钥以匹配您从签名报告中获得的密钥。之后不要忘记下载google-services.json。
小智 6
就我而言,问题出在 SHA1 和 google-services.json 文件上
我按照以下步骤解决了问题:
1.- 打开https://console.cloud.google.com/apis/credentials并在 OAuth 2.0 客户端 ID 处删除文件
2.- 打开https://console.firebase.google.com/点击齿轮图标 -> Proyect Settings -> 选择您的 Android 应用 -> 添加指纹 -> 保存 -> 并下载 google-services.json 文件
3.- 打开你的 android proyect 并替换 de google-services.json 文件 -> 点击 Sync Proyect with Gradle Files
4.- 新的 default_web_client_id 值对我来说很好用并解决了问题
小智 5
我已经通过以下步骤解决了这个问题:
1)。转到https://console.developers.google.com/并删除(Android客户端)(如果已创建)。
2)。点击创建凭据,然后点击OAuthClientID并选择android
3)。复制并粘贴您的SHA 1指纹
4)。输入您的包裹名称,然后保存
5)。转到console.firebase.com
6)。下载google-service.json,将其移至项目中的应用目录中
7)。打开google-service.json并找出客户端ID类型3,并将其用作default_web_client_id
8)。运行您的应用
小智 5
那是因为您使用了错误的default_client_token_id。要解决此问题,请转到从 firebase 下载的 JSON 文件并打开它:您的 client_id 位于“certificate_hash”之后:xxxxxxzxzxzzzxzxzxzxzxzx....祝你好运:),我希望它有所帮助。
我在 2-3% 的生产场合使用了这个东西,它可以无缝地适用于其他所有人。
鉴于这导致了大量的问题和不同的答案,可以公平地说这是代表 firebase 的问题。他们实现了一个包罗万象的错误例程,这只是糟糕的 api 设计。api 必须指向它失败的问题。
一个长期的解决方案是让 firebase 相信这是糟糕的 api 设计,他们需要做得更好。
我们在一起很坚强。
请使用以下内容大致为 firebase 写一张支持票:
嗨 Firebase 支持,
我的应用中有一个 com.google.android.gms.common.api.ApiException: 10 。
对我来说——以及论坛上的很多人——的问题是,你的 api 似乎有一个包罗万象的错误例程,粗略地说,“出了点问题,请修复它”。
如果你能解决这个问题,你可以让你的支持团队和很多人免于头痛。
API 应该能够找出问题所在,并从出现问题的上下文中给出更好的错误消息。
这真的是一个负担,我认为由于 Firebase 在 Android 上对这些问题具有准垄断地位,因此您有义务做得更好。
虽然这显然不是你的错,但我想鼓励你升级这个问题。
从根本上说,这是糟糕的 api 设计,并损害了其他出色的产品。
不管怎么说,还是要谢谢你。
| 归档时间: |
|
| 查看次数: |
30052 次 |
| 最近记录: |