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

Flutter Firebase需配置哪些签名?发布版Firestore权限拒斥排查

签名配置说明
  • Debug调试环境:仅需配置debug.keystore的SHA-1和SHA-256,用于本地开发调试。
  • 发布环境(Google Play分发):
    • 核心必填:谷歌控制台应用签名密钥证书的SHA-1和SHA-256,这是Play商店分发应用时实际使用的签名,必须配置。
    • upload-keystore签名:仅当你需要跳过Play商店,用upload密钥直接签名APK/AAB并手动分发时才需要配置,正常走Play官方分发流程的话可以删除。
  • 最终保留配置:debug密钥的两个SHA值 + Play应用签名密钥的两个SHA值即可。
权限拒斥问题解决步骤

1. 校验App Check发布版配置

  • 在Firebase控制台的App Check页面,确保Android应用已启用Play Integrity提供者,且关联了正确的Google Play项目。
  • 登录Google Play控制台,在「API权限」中确认Play Integrity API已启用(若未启用需手动开启)。

2. 验证用户认证有效性

  • 发布版中,务必确认用户已完成登录流程,且当前登录用户的邮箱与Firestore规则datalist中的邮箱完全一致。可以在代码中添加日志打印当前用户的email值,排查是否存在拼写错误或未登录情况。
  • 注意:若使用匿名登录、手机号登录等无邮箱关联的认证方式,request.auth.token.email会为null,直接触发权限拒绝,需确保登录方式能提供有效邮箱。

3. 分步排查权限规则

  • 临时修改Firestore规则进行调试(调试完成后务必改回原有规则):
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if isAuth() || request.app != null;
        }
      }
    }
    
    • 如果修改后能正常写入:说明App Check配置存在问题,需重新检查Play Integrity的启用状态和项目关联。
    • 如果仍无法写入:说明用户认证环节有问题,需排查登录流程是否正常完成、用户邮箱是否匹配规则。

4. 确认项目配置一致性

  • 确保Flutter项目中使用的google-services.json是从当前Firebase项目下载的最新版本,文件中已包含Play应用签名的SHA值。
  • 发布版的APK/AAB必须使用upload-keystore签名后再上传到Play商店,禁止用debug密钥签名发布包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:01:00