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

Firestore安全规则如何校验字符串长度?key.length不生效怎么解决

问题原因

Firestore安全规则在解析路径通配符捕获的参数时,如果参数值可被解析为整数类型,会自动转换为number类型而非string类型。数字类型没有length属性,调用length会导致规则判定失败,这就是你写的长度校验不生效的核心原因。
而你用==做精确匹配的时候,Firestore规则的相等判定会自动做类型隐式转换,比如数字123和字符串"123"会被判定为相等,所以这条规则可以正常运行。

修复方案

在获取长度前先将参数强制转换为字符串类型,调用规则内置的string()方法即可:

// 可正常运行的长度校验规则
match /queue/{key} {
  allow read: if string(key).length > 12;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:36:02