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

如何配置Firebase Firestore规则以仅允许特定邮箱用户进行认证及数据读写?

配置Firebase规则实现指定邮箱用户的专属读写&认证权限

我来帮你搞定这个权限配置需求,刚好有过类似的实践经验,分Firestore安全规则和Auth认证规则两部分设置就能实现你要的效果:

一、修改Firestore安全规则(核心读写权限控制)

你当前的规则allow read, write:if request;完全没有权限限制,任何人都能操作你的数据,必须改成严格匹配指定邮箱的规则:

service cloud.firestore {
  match /databases/{database}/documents {
    // 匹配所有文档和集合,全局生效
    match /{document=**} {
      allow read, write: if request.auth != null && request.auth.token.email == "thisIsExampleEmail@gmail.com";
    }
  }
}

规则细节解释:

  • request.auth != null:先确保请求来自已完成认证的用户,未登录的用户直接被拦截
  • request.auth.token.email == "thisIsExampleEmail@gmail.com":精准匹配你指定的邮箱地址,只有这个邮箱的用户能通过权限校验
  • match /{document=**}:这个通配符会匹配Firestore里的所有集合和文档,如果你只需要限制特定集合,把这段改成具体路径比如/posts/{postId}就行

二、限制仅指定邮箱用户完成认证

如果要彻底阻止其他邮箱用户注册/登录(也就是只有这个邮箱能完成认证流程),需要在Firebase Auth的规则里设置限制:

rules = {
  "auth": {
    "users": {
      "$uid": {
        // 仅允许指定邮箱用户创建/修改自己的用户记录(阻止其他邮箱注册)
        ".write": "auth.token.email == 'thisIsExampleEmail@gmail.com'",
        // 仅允许该用户自己读取自己的信息
        ".read": "auth.uid == $uid && auth.token.email == 'thisIsExampleEmail@gmail.com'"
      }
    }
  }
}

这里要注意:

  • Auth规则是在Firebase控制台的「Authentication」→「规则」页面设置的,和Firestore规则是分开的
  • 你可以先手动在Auth控制台添加这个邮箱的用户,或者让该用户通过正常登录流程创建账号

三、测试小技巧

配置完规则后,一定要用Firebase控制台的「规则模拟器」测试:

  • 模拟未登录的请求,应该被拒绝
  • 模拟其他邮箱登录的请求,读写操作应该被拒绝
  • 用指定邮箱登录的请求,应该能正常读写数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 00:57:28