【问题标题】:Firebase: Google api key restriction doesn't workFirebase:Google api 密钥限制不起作用
【发布时间】:2017-07-08 05:22:29
【问题描述】:

Firebase 在 Google API 控制台上为我创建了一个 API 密钥。在那里我添加了一个限制,使其只能由具有特定包名称和指纹的 Android 应用程序使用。

但是我仍然可以使用具有不同包名称的密钥(我更改了 Gradle 的应用程序 ID)。有什么问题?

【问题讨论】:

    标签: firebase google-api


    【解决方案1】:

    Firebase 不会尝试根据主机应用的应用 ID 或签名哈希来限制实时数据库的使用。当您在控制台中创建新的 Android 应用时,您会注意到签名密钥文本字段下的以下文本:

    动态链接、邀请和 Google 登录支持所必需的 授权。在“设置”中编辑 SHA-1。

    这些是唯一受应用 ID 和签名哈希影响的 Firebase 功能。需要应用程序 ID 的原因是帮助 Gradle 插件将 google-services.json 文件匹配到为其构建的应用程序。这不是安全措施。

    如果您在 build.gradle 中更改了您的应用程序 ID,但没有创建新应用并下载新的 google-services.json 文件,您的构建应该会失败并显示以下消息:

    找不到与包名称“your.new.package.name”匹配的客户端

    【讨论】:

    • 你可以在build.gradle中更改id,然后在google-service.json中直接编辑app包名。令我惊讶的是,即使 Firebase 控制台上不存在该虚假应用名称,您也可以连接到后端。
    • 如果你这样做了,那么你在项目中所做的每一个需要新的 google-services.json 的更改也需要你再次编辑它。然后再次。还要记住,数据库安全规则的设计是为了让您可以将其配置为全球可访问。同样,您下载的文件不是安全措施。其中的值会直接融入您的应用程序,任何人都可以对其进行逆向工程。如果您需要安全性,也可以使用 Firebase 身份验证。
    猜你喜欢
    • 2018-02-21
    • 1970-01-01
    • 2021-06-27
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2019-01-19
    相关资源
    最近更新 更多