Firebase函数与多个请求

Firebase函数与多个请求,firebase,firebase-realtime-database,nosql,Firebase,Firebase Realtime Database,Nosql,我是使用firebase的初学者,我对重复数据而不是使用键引用有疑问。假设我有一个视频用户评论列表。每个评论都有一个用户名和头像。假设用户可以更改名称和化身。更好的选择是什么: 在每条评论中只保留用户ID,并发出更多请求以获取用户配置文件数据或 复制用户配置文件和每条评论,并在用户更改其姓名或化身时使用firebase功能更新配置文件数据 需要考虑的一些要点: 选项1 专业人士 使用更少的存储空间 缺点 如果我们有很多用户在使用该应用程序,我们将有很多额外的请求来获取名称和化身 选项2

我是使用firebase的初学者,我对重复数据而不是使用键引用有疑问。假设我有一个视频用户评论列表。每个评论都有一个用户名和头像。假设用户可以更改名称和化身。更好的选择是什么:

  • 在每条评论中只保留用户ID,并发出更多请求以获取用户配置文件数据或
  • 复制用户配置文件和每条评论,并在用户更改其姓名或化身时使用firebase功能更新配置文件数据
  • 需要考虑的一些要点:

    选项1

    专业人士

    • 使用更少的存储空间
    缺点

    • 如果我们有很多用户在使用该应用程序,我们将有很多额外的请求来获取名称和化身
    选项2

    专业人士

    • 花费更多我们将在后台执行firebase功能,只要用户更改化身或名称
    常数

    • 使用更多存储空间
    例如:

    // OPTION 1
    {
      user: {
        user1: {
          name: 'Name 1',
          avatar: 'Avatar 1',
        }
      },
      comments: {
        comment1: {
          text: 'comment',
          user: 'user1'
        }
      }
    }
    
    // OPTION 2
    {
      user: {
        user1: {
          name: 'Name 1',
          avatar: 'Avatar 1',
        }
      },
      comments: {
        comment1: {
          text: 'comment',
          user: {
            id: 'user1',
            name: 'Name 1',
            avatar: 'Avatar 1',
          }
        }
      }
    }
    

    这实际上取决于您想要实现的目标,但总的来说,我建议您使用
    选项2

    在Firebase或NoSQL数据库中,镜像数据是一种非常好的方法。尤其是如果您想要构建高性能的应用程序。只要在每个节点中的数据发生更改时,不要忘记更新数据


    但有一件事你必须意识到,筑巢太深也可能是不好的。这就是为什么我认为这真的取决于案件是否合理

    这实际上取决于您想要实现什么,但一般来说,我建议您选择
    选项2

    在Firebase或NoSQL数据库中,镜像数据是一种非常好的方法。尤其是如果您想要构建高性能的应用程序。只要在每个节点中的数据发生更改时,不要忘记更新数据

    但有一件事你必须意识到,筑巢太深也可能是不好的。这就是为什么我认为这真的取决于案件是否合理