繁体   English   中英

在 Android 应用程序中使用多个 Firebase 项目进行 Google 登录

[英]Working with multiple Firebase projects in an Android app for Google sign-in

我的 android 应用程序正在使用在应用程序密钥库 SHA1 中注册的 GCM 项目。 我在我的应用程序中使用另一个 firebase 项目到使用不同 SHA1 的 FCM。 现在我想在我的应用程序中集成谷歌登录,这需要 SHA1 注册我的应用程序以进行谷歌登录。 我不想为此从 GCM 项目中删除我的 SHA1。 如何导入另一个 firebase 项目,使其不再需要我的 SHA1 密钥。

  1. 谷歌登录组件在 Android 上工作,它需要一个 SHA-1(用于签署 APK 的密钥的指纹)和 package 名称(例如 com 的注册应用程序) 这种组合允许 Google Sign-In 知道特定应用正在使用哪个 Google API 项目。 A given pair of SHA1 and Package Name is globally unique within Google (and Firebase projects), so if you try to add the same pair SHA-1 and package name to an upgraded Firebase project, you get an error that the OAuth2 client already exists (在 Google API 项目中) 见图片

  2. 警告:如果您看到这一点,请不要删除生产中应用的现有客户端 ID 正确的选择是在 Firebase 控制台中为升级后的项目创建一个与您的 package 名称相同的新应用程序,但不包含 SHA1 现在像往常一样使用 Firebase Auth 实现 Google 登录 在某一时刻,您必须配置您的 Google 签名选项 object:

  3. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestIdToken(getString(R.string.default_web_client_id)).requestEmail().build();

  4. 这里的 default_web_client_id 字符串用于设置 ID 令牌的受众字段。 该值来自 google-services.json 文件,该文件来自 Firebase 项目而不是 Google 项目。 您需要将其替换为来自 Google 项目的客户端 ID。 您可以使用任何 Web 客户端 ID,或创建一个新的: 见图片

  5. 接下来,回到 Firebase 项目,将您刚刚在 Firebase 控制台的 Auth > Sign In Providers > Google 部分中为 GoogleSignInOptions 设置的客户端 ID 列入白名单。 看图片

  6. 请务必重新下载您的 google-services.json 并将其添加到您的 Android 应用程序中。 此时,您的 Firebase 项目将接受您的 Google 项目生成的 Google ID 令牌 - 因此您的 Android 应用程序将愉快地使用 Google 项目登录到 Google,然后使用您的 Z035489FF8D092741943E4A83241F5 项目按照正常方法使用 Google ID 令牌进行身份验证。 您将能够对与 Google API 项目关联的 Google API 进行经过身份验证的调用,并使用 Firebase 项目对 Firebase API 进行经过身份验证的调用。

  7. 请查找文档来源供您参考

我也遇到了这个问题。 我发现实际上有一个与 Firebase 帐户关联的 Google Developer Console,它是隐藏的。 我的解决方案是前往 Firebase 项目设置 > 服务帐户 > 单击其他服务帐户下的链接: Firebase 控制台服务帐户

这将打开 Google Cloud Platform,您可以关闭此页面并进入您的 Google Developer Console,您将在 firebase 中看到一个与您的项目名称完全相同的项目。

您还可以看到 OAuth 2.0 客户端 ID 是由 Google 服务自动生成的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM