假设我想使用Firebase实现类似Fiverr的网站(请参阅附图)。 因此,数据库应该包含一个用户列表,每个用户都有多个属性(如名称,头像图像等)。
没有任何身份验证 - 此网站应显示这些用户的列表,其中包含一些属性(“公共”属性,其他属性应为“私有”)。 一旦用户通过身份验证(已登录),他就可以看到该网站的“管理员”部分 - 他可以在其中阅读所有属性并进行更新。
所以我的问题是: 从Firebase数据库读取数据的正确方法是什么,无需身份验证(呈现用户列表),但没有设置全局“.read”:true,“数据库规则?
答案 0 :(得分:2)
实际上没有“正确”的方法,但您应该选择对您的要求有效的任何方法。一个有效的解决方案可能是让两个位置/users_public
和/users_private
具有基于其预期可见性的不同规则。显然,/users_public
应该具有全局读取访问权限,如果您希望在没有身份验证的情况下显示数据。
答案 1 :(得分:2)
执行此操作的最佳方法是使安全规则执行您想要的操作,并将编辑功能限制为登录用户,但使数据公开可见。然后在您的网站上,检查用户是否已登录,然后打开一个特殊页面,他们可以根据需要编辑他们的信息。您无需担心随机人员访问此链接并编辑信息,因为他们必须通过您的firebase规则进行身份验证。希望这有帮助!