有没有办法使用在用户创建时最初设置的规则来检查值?
我仔细阅读了 firebase 文档,但无济于事。
当调用函数 createUserWithEmailAndPassword
时,我会在数据库中创建一些值,例如:
"users": {
"ht35resf435dwe3rfdw": {
"is_premium": false,
"display_name" "John",
"last_login": 15353723826
}
}
我面临的问题是:is_premium: false
是前端代码的一部分,我担心用户可能会以某种方式将其更改为is_premium: true
。
我无法找到一种方法来检查它在创建时是否最初设置为 false。
P.s 我可能会搞错,我是一名大三学生,所以我将不胜感激。
最佳答案
要仅允许将值设置为 false
,您可以使用验证规则:
{
"rules": {
"users": {
"$uid": {
"is_premium": {
".validate": "newData.isBoolean() && newData.val() == false"
}
}
}
}
}
以上内容仅允许任何客户端写入false
。然而,当您使用 Admin SDK 进行写入时,这些写入会绕过这些安全规则。因此您可以使用 Admin SDK 来标记高级用户。
关于javascript - 新用户的 Firebase 数据库安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57591625/