You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Firebase实时数据库规则仅允许指定keystore签名应用读写?

仅允许特定签名应用访问Firebase实时数据库的规则配置

核心思路

Firebase实时数据库的安全规则可通过验证请求来源应用的签名哈希值,限制仅你指定keystore签名的应用能读写数据。具体实现步骤如下:

1. 获取应用签名哈希

使用keytool工具生成发布版(或调试版)keystore的SHA-256哈希值:

keytool -exportcert -list -v -alias <你的keystore别名> -keystore <你的keystore文件路径>

从输出结果中提取SHA-256字符串,去掉所有冒号(比如AA:BB:CC...转为AABBCC...),大小写不影响匹配。

2. 在Firebase控制台配置签名哈希

打开Firebase控制台进入你的项目,按以下路径操作:

  • 项目设置 → 应用 → 找到对应的Android应用
  • 添加刚才获取的SHA-256哈希值(调试版和发布版的哈希需分别添加)

3. 编写安全规则

在Firebase实时数据库的规则编辑器中,利用request.auth.token.android_signer_in_sha256变量验证签名哈希,示例规则如下:

{
  "rules": {
    ".read": "request.auth != null && request.auth.token.android_signer_in_sha256.contains('<你的SHA-256哈希值>')",
    ".write": "request.auth != null && request.auth.token.android_signer_in_sha256.contains('<你的SHA-256哈希值>')"
  }
}
  • 说明:android_signer_in_sha256会返回当前请求应用的所有签名哈希数组,只要包含你配置的哈希值,就允许访问。
  • 额外提示:保留request.auth != null要求用户必须登录,避免签名哈希被伪造后无限制访问;若无需用户认证,可去掉该条件,但安全性会降低。

注意事项

  • 调试版和发布版应用的签名哈希不同,务必都添加到Firebase控制台,否则对应版本的应用会被拒绝访问。
  • 签名哈希属于敏感信息,不要随意泄露给第三方。
  • 建议结合其他安全规则(比如用户角色权限),实现多层安全防护。

内容的提问来源于stack exchange,提问作者Don Moon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 18:33:11