Firebase Firestore安全规则返回Simulated write denied如何排查解决
Firestore 安全规则模拟写入被拒排查方案
- 优先修正属性拼写错误:你规则中写的
request.auth.ui属于拼写错误,Firebase Auth 内置的用户唯一标识属性为request.auth.uid,修正拼写后优先重试模拟,这是该类问题最常见的根因。 - 确认模拟参数配置正确:模拟写入时需手动开启「已认证」开关,同时在 UID 输入框填写的测试值要和规则逻辑匹配:如果规则要求
request.auth.uid != KullaniciId,需确认测试 UID 和你写入数据携带的KullaniciId字段值不相等;如果规则要求二者相等则需要保持取值一致。 - 校验规则路径匹配层级:确认你的校验逻辑写在了正确的集合/文档路径下,比如你操作的是
kullanicilar/{userId}这类路径,规则的match层级要完全对齐,不要把校验逻辑写在错误的父级或子级路径下。 - 检查字段取值来源:如果你的规则是对比已有文档的
KullaniciId,需要用resource.data.KullaniciId取值,该值仅在更新已存在文档时生效;如果是写入新文档,需要用request.resource.data.KullaniciId取即将写入的数据中的对应字段。 - 排查多规则冲突:同路径下如果存在多条
allow规则,Firestore 遵循「任意一条匹配即放行」的逻辑,确认没有其他优先级更高的规则直接拦截了当前写入请求。
相关截图:

内容的提问来源于stack exchange,提问作者Bora Tan Demir
相关产品推荐
相关产品推荐

