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

Firestore安全规则配置:允许更新当数组/Map不含用户UID

Firebase Firestore安全规则:两种更新权限场景配置

没问题,我帮你整理了符合需求的Firestore安全规则配置,还加上了必要的用户登录校验(毕竟未登录用户不应该有更新权限):

场景1:仅当目标数组中不包含请求用户UID时允许更新

假设你的文档中有一个名为blockedUsers的数组字段,你希望用户只能在自己不在这个数组里的时候更新文档,规则可以这么写:

match /your-collection/{docId} {
  allow update: if request.auth != null && request.auth.uid not in resource.data.blockedUsers;
}

解释:

  • request.auth != null:确保请求来自已登录的合法用户
  • request.auth.uid not in resource.data.blockedUsers:检查当前用户的UID不在目标数组(这里是blockedUsers)中,满足条件才允许更新操作

场景2:仅当目标Map类型数据中不包含请求用户UID(作为Map的键)时允许更新

如果你的文档中有一个名为authorizedEditors的Map字段(比如键是用户UID,值是权限信息),你希望用户只能在自己的UID不是这个Map的键时执行更新,规则如下:

match /your-collection/{docId} {
  allow update: if request.auth != null && request.auth.uid not in resource.data.authorizedEditors.keys();
}

解释:

  • resource.data.authorizedEditors.keys():获取Map字段的所有键的集合
  • request.auth.uid not in ...:判断当前用户的UID不在这些键当中,满足条件则允许更新

注意:记得把规则中的your-collection、blockedUsers、authorizedEditors替换成你实际的集合名称和字段名哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 19:27:39