我想将路径中的一个变量与我的文档中的一个条目进行比较。我构建了以下规则:
match /{userId}/test/{cycle}/results {
//allow read: if 3 == get(/databases/$(database)/documents/$(userId)/status).data.number
allow read: if cycle == get(/databases/$(database)/documents/$(userId)/status).data.number
}注释掉的行工作得很好,这意味着我的路径中的{ cycle }变量可以工作,并且传递了正确的数字,但是当我想将周期变量与数据库中的数字进行比较时,它就不能工作了。
是否可以将字符串与数字或类似的东西进行比较?
谢谢!!
发布于 2021-02-09 04:52:27
我可以自己解决这个问题。问题是我比较了一个字符串和一个数字。请求以字符串形式传递的路径,它还将{cycle}变量定义为字符串。我将它与我的数据库中的数据进行了比较。
解决方案中,将数字转换为字符串
match /{userId}/test/{cycle}/results {
allow read: if cycle == string(get(/databases/$(database)/documents/$(userId)/status).data.number)}
更多信息:https://firebase.google.com/docs/reference/rules/rules.String
https://stackoverflow.com/questions/66105122
复制相似问题