我有一个具有用户名,UID,电子邮件的用户 所以我希望无法到达电子邮件字段和UID,因为某些用户不想通过阅读其电子邮件子级来向其发送电子邮件,并且在我的应用程序中注册以搜索用户不是必需的 如何解决这个问题?
我想制造一棵树,除了Firebase之外,其他任何人都不能读/写,但是Firebase中不存在
编辑
{
"bdjsjd" : {
"email" : "something1@gmail.com",
"name" : "bdbsndnd",
"username" : "bdjsjd"
},
"developer" : {
"email" : "something2@gmail.com",
"name" : "dev_mohammed",
"username" : "developer"
}
}
当我想通过键(键是用户的用户名)读取它时,它也会返回电子邮件,但是如果用户不想从其他人那里收到电子邮件,我想返回除电子邮件字段以外的所有内容但是我可以这样做吗?
答案 0 :(得分:0)
Firebase将始终返回完整的节点。因此,您可以允许读取每个用户的email
和name
节点,而不是username
的节点。但是,如果您允许读取用户节点(更高一级),则无法从结果中排除username
。
为确保这种结构的安全,您需要将用户名与其他详细信息放在不同的顶级节点中。像这样:
"profiles": {
"bdjsjd" : {
"email" : "something1@gmail.com",
"name" : "bdbsndnd"
},
"developer" : {
"email" : "something2@gmail.com",
"name" : "dev_mohammed"
}
},
"user_names": {
"bdjsjd": "bdjsjd",
"developer" : "developer"
}
现在您可以对/profiles
和/user_names
赋予不同的权限。
另请参阅: