我需要帮助才能想到这个问题,这是我的firebase架构。
我需要查看个人资料但是公开,如何制作它?
那么,您如何看待架构以及一个用户如何进行对话?
我认为会话节点可以保留在用户节点之外,并且每个用户都可以引用对话。哪一个选择?
答案 0 :(得分:1)
您在单个根目录下嵌套多种数据类型,这是大多数Firebase实时数据库开发人员建议的。其中一些最重要的原因是:
/Users/$uid/name
等可以通过这种方式读取名称,而不是对话。在单个用户节点上,这确实有效。但是使用此结构,您无法获得用户配置文件列表,因为您没有/Users
的读取权限。对共享内容进行建模的常用方法是将会话和用户配置文件拆分为单独的顶级节点,每个节点都在用户的UID上键入:
Users
$uid
name: "Matias Celiz"
gender: "..."
Conversations
$uid
...
如果您需要单独的公开个人资料信息和私人个人资料信息,请添加另一个顶级节点以拆分这两个:
Users
$uid
name: "Matias Celiz"
gender: "..."
Profiles
$uid
name: "Matias Celiz"
Conversations
$uid
...