以下是在条件中使用的文档字段的数据类型为数字< - p>时失败的示例规则
match message_box/{user_id}/inbox {
allow read: if get('..../users/$(request.auth.uid)).data['user_id'] == user_id
}
此规则始终失败,因为在数据中字段值是数字,但在路径变量{user_id}中,它被捕获为字符串。
以下两项测试证实这是一个实际问题 -
任何简单的方法都能顺利运行吗?在规则文档中没有看到将int转换为字符串的方法。
答案 0 :(得分:1)
这个问题被引用为here。
万一将来有人遇到这种情况,请查看以下有关在Firestore规则中转换数据类型的文档:
示例:
int("2") == 2
int(2.0) == 2
string(true) == "true"
string(1) == "1"
string(2.0) == "2.0"
string(null) == "null"