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

无登录认证应用的Firestore只读安全规则限制方案咨询

解决Firestore无认证应用的只读权限限制问题

核心思路

你的应用没有注册登录机制,无法通过常规用户认证限制访问,验证请求的SHA-1证书指纹是可行方案——Firebase可识别你应用请求携带的签名指纹,以此判断是否允许访问。

具体操作步骤

1. 获取应用的SHA-1指纹

  • Android应用:
    在Android Studio打开右侧Gradle面板,展开项目→Tasks→android→双击signingReport,在底部Run窗口找到SHA1对应字符串并复制保存。
  • iOS应用:
    打开Xcode,选择项目目标→Signing & Capabilities→查看Signing Certificate,通过钥匙串访问工具找到对应证书,右键选“获取信息”,在“指纹”栏提取SHA-1值(去掉空格)。

2. 将SHA-1添加到Firebase项目

登录Firebase控制台进入你的项目:

  • 点击左侧菜单项目设置→常规标签页。
  • 在你的应用区域找到对应平台应用,点击添加指纹,粘贴复制的SHA-1值后保存。

3. 修改Firestore安全规则

替换现有规则,用request.app验证请求来源的应用指纹:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      // 仅允许指定SHA-1指纹的应用进行只读访问
      allow read: if request.app != null && request.app.signing_certificates.sha1.contains("你的SHA-1指纹字符串");
      // 保留原认证写入规则(按需调整)
      allow write: if request.auth != null;
    }
  }
}

注意:把规则中的你的SHA-1指纹字符串替换为实际获取的SHA-1值,无需添加空格或冒号。若有多个环境(开发/正式版),可传入指纹数组:contains(["指纹1", "指纹2"])

关键说明

这种方式仅限制官方打包签名的应用,若应用被反编译重签名可能被绕过,但足以应对普通场景的安全需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:45:30