FirebaseAuth - 来自此 Android 客户端应用程序的请求<empty> 被阻止

问题描述 投票:0回答:3

https://firebase.google.com/docs/auth/android/apple

我们在 Android 上开发了 Sign in with Apple,并确认其工作正常。

但是,如果 Google Cloud Console 中的 API 密钥仅限于 Android,则它不起作用并出现以下错误。

com.firebase.ui.auth.FirebaseUiException: An internal error has occurred. [ Requests from this Android client application <empty> are blocked. ]
        at com.google.firebase.auth.api.internal.zzdv.zza(com.google.firebase:firebase-auth@@19.2.0:18)
        at com.google.firebase.auth.internal.zzal.onReceive(com.google.firebase:firebase-auth@@19.2.0:32)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:121)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7770)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)

An internal error has occurred. [ Requests from this Android client application <empty> are blocked. ]

如果 API 密钥设置为无,则一切正常。

是否应该取消 API 密钥限制以应用 OAuth 身份验证(例如 Apple)?

或者还有什么我错过的吗?

供您参考,我在

Identitytoolkit.getProjects
API 中发现了 403 错误。

Firebase Auth:来自此 Android 客户端应用程序 com.xxx 的请求被阻止

上面的讨论我已经看过很多次了。但这不是解决方案,因为添加或删除签名会使 API Key 限制自动解除。

我认为这不是SHA-1签名问题,因为使用相同API Key的其他API没有问题。

我用https://github.com/firebase/FirebaseUI-Android的演示项目对其进行了测试,但出现了同样的问题。

当 API 密钥仅限于 Android 时,我不知道如何使用 Apple 进行身份验证才能正常工作

android firebase oauth firebase-authentication
3个回答
11
投票

如果您使用 Google Play 应用签名,只需登录 Firebase 进入“项目设置”->“集成”,然后按按钮将 Google Play 与 Firebase 链接,SHA-1 将自动添加。下载并更改新的 google-services.json

如果您仍然遇到问题,请转到 Google Cloud Console API,单击左上角的汉堡包图标 -> API 和服务 -> 凭据。选择您正在使用的 API 密钥。在限制下,选择“无”。


1
投票

根据 https://github.com/firebase/firebase-android-sdk/issues/1757#issuecomment-655777739 Apple 在 Android 上登录需要 Web 流程,这意味着将 API 密钥限制为 Android 会破坏该流程。

如果需要 Apple 登录功能,建议禁用 Android 上的 API 密钥限制。另外,根据该线程,API 密钥限制无论如何只能提供相当有限的保护,因此禁用并不是一个巨大的损失。


0
投票

如果您仍然遇到问题,请转到 Google Cloud API,单击左上角的汉堡包图标 -> API 和服务 -> 凭据。选择您正在使用的 API 密钥。 如果为 Android 应用程序定义了限制,那么您必须添加 SHA 密钥,之后此问题将得到解决。

© www.soinside.com 2019 - 2024. All rights reserved.