【发布时间】:2018-03-26 03:13:37
【问题描述】:
我需要帮助来思考这个问题,这是我的 firebase 架构。
我需要查看个人资料,但要公开,最好的方法是什么?
那么,您如何看待架构以及一位用户如何进行对话?
我认为对话节点可以留在用户节点之外,并且每个用户的每个引用对话。选择哪一个?
【问题讨论】:
标签: angular firebase firebase-realtime-database angular-cli
我需要帮助来思考这个问题,这是我的 firebase 架构。
我需要查看个人资料,但要公开,最好的方法是什么?
那么,您如何看待架构以及一位用户如何进行对话?
我认为对话节点可以留在用户节点之外,并且每个用户的每个引用对话。选择哪一个?
【问题讨论】:
标签: angular firebase firebase-realtime-database angular-cli
您将多种数据类型嵌套在一个根下,这是大多数 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
...
【讨论】: