Firebase规则检查Firestore文档字段是否存在时报空值错误如何解决

报错原因
该空值错误触发的核心原因是安全规则中直接访问了不存在的文档字段,Firestore安全规则在读取不存在的字段时不会返回布尔值,会直接抛出空值异常。
正确的字段存在性检查方式
使用in操作符判断字段名是否存在于文档数据映射中即可,参考写法:
// 错误写法:字段不存在时直接触发空值错误 allow read: if resource.data.targetField != null; // 正确写法:先校验字段存在 allow read: if "targetField" in resource.data;
其他常见场景写法
- 校验请求写入的新数据是否包含指定字段:
"targetField" in request.resource.data - 同时校验字段存在且值符合预期:
"targetField" in resource.data && resource.data.targetField == "expectedValue"
内容的提问来源于stack exchange,提问作者FadyFouad
相关产品推荐
相关产品推荐

