这个firebase规则是多余的吗?何时使用write vs validate?

Ben*_*n H 5 firebase firebase-authentication

仔细阅读了文档,但我不确定写规则和验证规则部分之间的区别.这个代码是多余的吗?使用其中一个或两者的任何一点?

特别:

  • "验证"说"用户必须登录,并且写入的值必须是uid.
  • "写"权限表示如果值与您的uid匹配,则只能写入$ user_id部分.
{
  "rules": {
    "users": {
      ".validate": "auth != null && newData.val() === auth.uid",
      "$user_id": {
        ".write": "$user_id === auth.uid"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Seb*_*Seb 6

唯一的区别是,.validate不会传播到其子.

回答你的问题,在你的例子中你可以只使用".write".

".write": "auth != null && $user_id === auth.uid"

  • 小事,但请注意 .validate 仅在 .write 规则授予访问权限时才进行评估。不过,我想这没有太大区别。 (2认同)