【问题标题】:Changing Firebase Package Name更改 Firebase 包名称
【发布时间】:2017-03-05 05:08:27
【问题描述】:

我有一个集成了 Firebase 的 Google 登录应用。我最近出于发布目的更改了应用程序包名称。现在运行抛出此错误:

Error:Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name '<Package Name>'

所以我猜 Firebase 无法识别具有新包名称的应用程序。如何更改 Firebase 包名称。我已经通过 Firebase 控制台,但找不到任何更改的包设置。或者有什么好方法可以实现这一点,而不是再次使用包名和代码创建新项目?任何帮助将不胜感激。

【问题讨论】:

  • 将另一个带有新包的应用添加到您的 Firebase 项目中。

标签: android firebase firebase-authentication


【解决方案1】:

正如 Eurosecom 评论的那样,您只需将一个新的 Android 应用程序添加到您现有的 Firebase 项目中,并使用新的包名称。完成此操作后,下载更新后的 google-services.json 并将其添加到您的应用中。

请注意,Firebase 不使用您的 Java 代码中的实际包名称,而是使用您应用的 build.gradle 文件中的 applicationId:

defaultConfig {
    applicationId "com.firebase.hearthchat"

当您最初在 Android Studio 中创建项目时,包名和应用程序 ID 将具有相同的值。但是,如果您将代码重构到不同的包中,则不会更新应用程序 ID。这就解释了为什么在这样的重构之后应用程序将继续工作。但有时可能会让人感到困惑,这就是为什么我更喜欢让它们保持同步。

【讨论】:

  • 是否需要重新添加所有 SHA1 密钥和其他内容?还是我只是做你做的事?
  • 与该问题相关,是否可以为 Google 登录提供某种通配符包名称?因为我在想,如果我需要在一个月内提交 100 个具有 Google 登录功能的应用程序,我不想在 Firebase 控制台上创建 100 个应用程序。你们能为此想点什么吗?提前致谢
  • 那么,如果我更改我的项目包名称并在 firebase 中创建新应用程序并添加 SHA-1 密钥并在应用程序中更新 json,它会起作用吗?
【解决方案2】:

如果您使用的是 Firebase 助手,那么:

  • 在 Firebase 控制台的项目设置中删除您的应用。
  • 返回 Firebase 助手重新连接到 Firebase 以获取任何服务。
  • 它将要求您与项目同步。点击同步。
  • 将添加带有新包的应用,并自动更新google-services.json 文件。

还要注意build.gradle文件中applicationId值的包名被考虑。

干杯

【讨论】:

    【解决方案3】:

    有解决此问题的更好方法。该错误可能是由于您的应用文件夹中有 GoogleService Json 文件,您需要做的就是;尝试在 app 文件夹下找到您的 google-service.json 文件,并将 package_Id 更改为您创建的新 package_id;保存,进行清理和重建项目,您的问题将得到解决。希望这会帮助你。这个对我有用。如果这也对您有帮助,您可以投票。谢谢

    【讨论】:

    • 只改变json文件中的包名是不够的,其他信息也需要改变,所以最好的办法是在同一个项目中新建app,使用新的json文件。跨度>
    • @hiddeneyes02 这取决于您将 Firebase Gson 文件放在应用文件夹中时如何导入和同步项目。我指出的,实际上对我有用,而且没有一种方法可以得到结果。和注;上面的错误信息,总是在你改变你的 package_name 时弹出,在你已经从 firebase 放置你生成的 GsonFile 之后,它会弹出错误,因为 package_name 不再与 GsonFile 中的内容对应。所以它需要更改为最近的 package_name。希望你明白我的意思。你不需要投反对票。谢谢
    • 是的,它有效,但它不应该。使用一个包名称声明并在 Firebase 中注册具有不同包名称的应用程序,并且它们仍然相互连接是没有意义的。这绝对是谷歌的一个错误,并且不能保证这在未来不会中断。请编辑您的答案,以便我可以取消投票和道歉。
    • FIY,这里是谷歌关于这个问题的官方立场:“为了解释它为什么根据你所做的步骤工作,客户端应用程序仍然会收到消息,因为 FCM 指的是应用程序 ID,这是在发送消息时从应用注册自动生成的。因此,不建议通过更改应用的包名称来手动更改配置文件。这可能会影响发送计数来自的通知传递报告预期的应用程序可能无法获得一些数字。”。他们还说,这将在未来发生变化。
    猜你喜欢
    • 2016-08-16
    • 2012-05-04
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多