gpt4 book ai didi

android - 在用于 Google 登录的 Android 应用中处理多个 Firebase 项目

转载 作者:行者123 更新时间:2023-11-29 22:46:08 25 4
gpt4 key购买 nike

我的 android 应用程序正在使用 GCM 项目,该项目已在应用程序 keystore SHA1 中注册。我在我的应用程序中将另一个 firebase 项目用于 FCM,它使用不同的 SHA1。现在我想在我的应用程序中集成 Google 登录,这需要 SHA1 为我的应用程序注册谷歌登录。为此,我不想从 GCM 项目中删除我的 SHA1。我如何导入另一个 firebase 项目,使其不再需要我的 SHA1 key 。

最佳答案

  1. 要在 Android 上运行的 Google 登录组件,它需要一个 SHA-1(用于签署 APK 的 key 的指纹)和包名称(例如 com.foo.bar)已注册该应用。这种组合允许 Google Sign-In 知道特定应用程序正在使用哪个 Google API 项目。 给定的一对 SHA1 和包名称在 Google(和 Firebase 项目)中是全局唯一的,因此如果您尝试将同一对 SHA-1 和包名称添加到升级后的 Firebase 项目,您会得到一个OAuth2 客户端已存在的错误(在 Google API 项目中)see Image

  2. 警告:如果您看到此消息,请不要删除您现有的客户端 ID生产中的应用! 正确的选择是创建一个新的应用程序与升级后的 Firebase 控制台中的包名称相同项目,但不包含 SHA1。现在执行Google Sign Inwith Firebase Auth像平常一样。在某一时刻你将不得不配置您的 Google Sign Options 对象:

  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 token 的受众字段。该值来自 google-services.json 文件,该文件来自 Firebase 项目而不是 Google 项目。您需要将其替换为来自 Google 项目的客户端 ID。您可以使用任何 Web 客户端 ID,或创建一个新的:see image

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

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

  7. Please find the document source for your reference

关于android - 在用于 Google 登录的 Android 应用中处理多个 Firebase 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com