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"
但我不会尝试将其用作永久解决方案,因为随着您的进步,您会 运行 遇到更多问题。
所以我正在尝试为我的应用程序构建安全屏障。我的用户数据库结构在第一行,下面是我的初始安全规则:
/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"
但我不会尝试将其用作永久解决方案,因为随着您的进步,您会 运行 遇到更多问题。