Firebase 安全规则自定义字段
Firebase security rules custom field
我的 Firebase 安全规则如下所示:
"users": {
"$uid": {
// grants write access to the owner of this user account whose uid must exactly match the key ($uid)
".write": "auth !== null && auth.uid === $uid",
// grants read access to any user who is logged in with an email and password
".read": "auth !== null && auth.provider === 'password'"
}
},
此外,我还有一个自定义 userId
,我将其存储在 users/$uid
中。因此,作为示例,我的 users/$uid
如下所示:
users
/$uid
/email: foo@bar.com
/userId: "foobargayid123456"
我在其他节点使用这个userId,例如节点profile_pictures
来设置依赖:
profile_pictures
/userId
/thumbnail: "datablabla"
问题
如何在 firebase 中为节点 profile_pictures 设置安全规则,以便只有 ID 为 users/$uid/userId
的用户才能 .write
节点 profile_pictures/userId
我想这就是您要找的。
{
"rules": {
"profile_pictures": {
"$userId": {
".write": "
root.child('users').child(auth.uid).child('userId').val == $userId"
}
}
}
}
我的 Firebase 安全规则如下所示:
"users": {
"$uid": {
// grants write access to the owner of this user account whose uid must exactly match the key ($uid)
".write": "auth !== null && auth.uid === $uid",
// grants read access to any user who is logged in with an email and password
".read": "auth !== null && auth.provider === 'password'"
}
},
此外,我还有一个自定义 userId
,我将其存储在 users/$uid
中。因此,作为示例,我的 users/$uid
如下所示:
users
/$uid
/email: foo@bar.com
/userId: "foobargayid123456"
我在其他节点使用这个userId,例如节点profile_pictures
来设置依赖:
profile_pictures
/userId
/thumbnail: "datablabla"
问题
如何在 firebase 中为节点 profile_pictures 设置安全规则,以便只有 ID 为 users/$uid/userId
的用户才能 .write
节点 profile_pictures/userId
我想这就是您要找的。
{
"rules": {
"profile_pictures": {
"$userId": {
".write": "
root.child('users').child(auth.uid).child('userId').val == $userId"
}
}
}
}