如何根据数据库用户ID(而不是UID)设置Firebase规则
您好,我的fb数据库中有一个用户列表。用户ID是在成功注册后自动生成的,每个用户条目都有名称、电子邮件和UID。此外,这些属性中的每一个都被索引到/index中,这样我就可以根据用户的uid轻松地查找他们的id。
根据文档,Firebase说使用WRITE:$USER_ID=auth.uid
如何使用生成的ID而不是uid来完成此操作?
这里是fb数据库:https://medviz.firebaseio.com/
解决方案
在您的用户对象中将有这样的用户
users : {
user1234abc:{
name: "abc"
},
user2434dbcc:{
name: "abc"
}
}
用户对象中将有许多unique key/user nodes
,例如user1234abc
、user2434dbcc
variable
在规则中不必将其命名为$user_id
,您可以随心所欲地命名它,例如,对于唯一用户键,您可以将变量命名为$any_variable
和Auth.id中,只要用户成功验证了auth.uid
中相同唯一ID,因此当您编辑与该用户相关的信息时,可以在任何地方计算auth.uid
例如,如果auth.uid
包含user1234abc
并且如果user1234abc
正在编辑此对象user1234abc:{name: "abc" }
,则他将能够
查看下面的更新视图
已更新视觉层次结构:
--schema--
users : {
________________
|
user1234abc:{ |
name: "abc" |
}, |
user2434dbcc:{ |
name: "abc" |
} |
} key can be name as any variable in rules
|
-- rules--
|
{ |
"rules": { |
"users": { |
".read": true, |
________________|___________
| |
|/ |
"$any_variable": { |/
".write": "$any_variable === auth.uid"
}
}
}
}
相关文章