首页 > 解决方案 > 关于 Firebase 身份验证和 Google 端点安全性的说明

问题描述

我有一个使用 Firebase 进行身份验证的 android 应用程序。我想访问 Google 端点 api。我为装饰器设置了参数,@endpoints.api以便只有这个应用程序可以访问它。

我正在阅读 https://cloud.google.com/endpoints/docs/frameworks/java/calling-from-android上的教程,其中声明要使用端点服务对象,我首先必须这样声明凭据,

credential = GoogleAccountCredential.usingAudience(this, "server:client_id:1-web-app.apps.googleusercontent.com");

然后将此凭据传递给服务对象构建器。

但是,由于我使用 Firebase 进行身份验证,因此此凭据对象不起作用。尝试这样做会输出GoogleAuthIOException错误。

我找不到任何有关适用于服务构建器第三个参数的 Firebase 凭据对象的信息。我最接近的是 AuthCredential credential = GoogleAuthProvider.getCredential(idToken, null);

我正在阅读一些可能的解决方案,例如 Cloud Endpoints with Firebase Authentication,但这个解决方案似乎表明我必须在端点服务上设置 FirebaseAdminSDK。

然后我的主要查询是:对于 Android 上的 Firebase 身份验证,我是否必须将其 id 令牌传递给端点服务,然后按照第二个链接的建议使用 FirebaseAdminSDK 对其进行验证,或者我可以设置一个简单的 Firebase 凭据变量来传递进入服务对象,类似于本文第一个链接中的示例?

标签: androidfirebasegoogle-cloud-platformfirebase-authenticationgoogle-cloud-endpoints

解决方案


推荐阅读