您绝对可以使用当前数据结构保护对私有和公共数据的访问。
但是您可能需要在某个时候使用的一个用例是显示所有用户的公共信息列表。使用当前的数据结构是不可能的,因为Firebase的安全模型无法用于过滤数据。
大多数开发人员将公共数据和私有数据划分为完全独立的子树:
{ "users" : { "YFIIAgwa2kaannrXjwvSZmoywma2" : { "Name:" : "Example 1", }, "YgSfSzPzxLbyDL17r6P9id2cdvH2" : { "Name:" : "Example 2", } }, "public_profiles": { "YFIIAgwa2kaannrXjwvSZmoywma2" : { "email" : "example1@gmail.com" }, "YgSfSzPzxLbyDL17r6P9id2cdvH2" : { "email" : "example2@gmail.com" } }}然后,您可以使用以下方法保护访问权限:
{ "rules": { "users": { "$uid":{ ".read": "auth != null && auth.uid == $uid", ".write": "auth != null && auth.uid == $uid", } }, "public_profiles": { ".read": "auth != null", "$uid":{ ".write": "auth != null && auth.uid == $uid", } } }}现在,任何经过身份验证的用户都可以收听
/public_profiles,这意味着您可以轻松显示这些配置文件的列表。



