我为我的应用程序尝试了以下安全规则,但遇到了问题。我的 Firebase 中有一个用户,唯一 ID 为 2。
{
"rules": {
"users": {
"$user": {
".read": "$user == auth.id",
".write": "$user == auth.id"
}
}
}
}
我已经检查过,当我这样做时".write": "$user == 2"
,我将无法在 firebase 上写作,但是当我这样做时".write": "$user == '2'"
,我将能够在 firebase 上写作。
另一方面,当我这样做时".write": "auth.id == 2"
,我将能够在 firebase 上写作。
似乎 $user 被视为字符串,而 auth.id 被视为数字。我已经检查了https://www.firebase.com/docs/security/上的文档,但事实证明它对这个问题没有帮助。
在绝望的尝试中,我尝试".write": "$user == auth.id.toString()"
了这当然给了我这个错误:“6:29:类型错误:目标上的函数调用不是一个函数。”
任何人都可以就这件事给我一些建议吗?
我能想到的唯一解决方法是将“userId”作为 $user 的子项包含在内,这将被读取为数字值而不是字符串。