Firebase 安全性:uid 和 facebook.id

Firebase security: uid and facebook.id

所以我正在尝试为我的应用程序构建安全屏障。我的用户数据库结构在第一行,下面是我的初始安全规则:

/users/[facebook id of user]/[data]


{
  "rules": {
    "users": {
      "$user": {
        ".read": "auth.uid === $user",
        ".write": "auth.uid === $user"
      }
    }
  }
}

我的问题是:我可以格式化安全规则,以便 auth.id 与字符串比较:"facebook:" + $user?

或者我应该更改所有数据库以使用原始 auth.uid 作为用户 ID?到目前为止,我一直在使用 facebook.id 作为用户 ID。

auth.uid 不等同于 "facebook:" + facebook.id 所以不,你不能简单地使用它。如果您想在安全规则中唯一标识您的用户,则需要使用 auth.uid

如果您正在生产中,作为重写所有用户 ID 的中间步骤,您可以添加 auth.uid 作为字段并引用:

".write": "data.child('uid').val() === auth.uid"

但我不会尝试将其用作永久解决方案,因为随着您的进步,您会 运行 遇到更多问题。