小编Adr*_*ith的帖子

Firebase Firestore评论树架构

我正在尝试将Reddit/HackerNews样式的注释树作为项目的一部分来实现,并且我正在尝试将Firestore作为数据库解决方案.但是,我不确定通过文档正确的设计阅读.在SQL数据库中,我会使用数字键,如:

0
1.0
1.1
1.1.1
0.0
Run Code Online (Sandbox Code Playgroud)

代表我的树.但是,像这样的数字键似乎是Firebase反模式.另一条路线是在json中使用实际树,其中一个帖子表示如下:

{
  uid: 'A0000',
  content: 'foo',
  children: [
    {uid:..., content:..., children: []}]
}
Run Code Online (Sandbox Code Playgroud)

但据说在Firestore中,深树很糟糕.据我所知,深树不好的原因是你必须取出整个东西,但就我而言,我不确定这是不是一个问题.提取帖子的客户端将获取根内容节点和前20个子树.这可能是一个相当大的提取,但不是疯狂的.

有谁知道实现这种结构的良好标准方法?

额外:以下是客户端处理结构后应该看起来更详细的表达方式.

{
  uid: 0,
  title: 'Check out this cat!',
  body: 'It\'s pretty cute! This **text** is [markdown](link), so it can have ' +
    'links and *stuff*. Yay!',
  poster: {
    uid: 0,
    name: 'VivaLaPanda',
    aviUrl: 'badlink',
  },
  posted: '2018-03-28',
  children: [{
      uid: 0,
      body: 'This is a comment, it\'s angry!',
      poster: {
        uid: 0,
        name: 'VivaLaPanda',
        aviUrl: 'badlink', …
Run Code Online (Sandbox Code Playgroud)

tree schema firebase google-cloud-firestore

11
推荐指数
2
解决办法
973
查看次数

标签 统计

firebase ×1

google-cloud-firestore ×1

schema ×1

tree ×1