您好我的fb数据库中有一个用户列表。成功注册后会自动生成用户标识,并且每个用户条目都具有名称,电子邮件和uid。此外,这些属性中的每一个都在/ index中编入索引,这样我就可以轻松查找用户的id来获取uid。
根据文档,firebase说使用write:$ user_id === auth.uid
如何使用生成的ID而不是uid来完成此操作?
这是fb db:https://medviz.firebaseio.com/
答案 0 :(得分:5)
在您的用户对象中,会有像这样的用户
users : {
user1234abc:{
name: "abc"
},
user2434dbcc:{
name: "abc"
}
}
您将在用户对象中包含多个unique key/user nodes
,例如user1234abc
,user2434dbcc
该唯一键可以在规则中命名为variable
,无需将其命名为$user_id
,您可以将其称为任何您想要的,例如您可以将变量命名为$any_variable
唯一用户密钥
并在auth.id中,只要用户成功验证同一个唯一ID在auth.uid
中,那么当您编辑与该用户相关的信息时,您可以使用auth.uid
的任何数学
例如,如果auth.uid
包含user1234abc
并且user1234abc
正在编辑此对象user1234abc:{name: "abc" }
,则符合.write规则,他将能够
请参阅下面的更新视图
更新了视觉层次结构:
--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"
}
}
}
}