首页 > 解决方案 > 在 Firebase 中创建带有评论的帖子

问题描述

我正在尝试找到使用 RTDB(不是 Firestore,因为该项目已经进行了一段时间)在 Firebase 中存储和检索带有评论的帖子列表的最佳方法。

我有一组用户: 在此处输入图像描述 我有一组帖子 在此处输入图像描述

有些人建议将用户名直接存储在帖子和帖子评论中,但我担心他们会在某些时候更改他们的信息。另外,我想显示更多信息(声誉、成员等)。

我的想法是查询每个用户并将对象存储在关联数组中。所以第一次出现UID 1234时,代码会检查数组,如果不存在,就会从数据库中查询。

users = {};    
getUser( uid ){
    return new Promise( (resolve, reject ) =>{
      if( this.users && this.users[ uid ] ){
        resolve( this.users[ uid ] );
      } else {
        this.angular.object('users/'+uid ).snapshotChanges().take(1).subscribe( data =>{
          const user = data.payload.val();
          if( user ){
            this.users[ uid ] = user;
            resolve( user );
          } else {
            reject();
          }
        });
      }
    });
  }

如果一个页面上有 100 个用户和评论,我想知道这是否效率低下?对于像 Firebase 这样的东西来说,处理的查询太多了吗?

标签: javascriptangularfirebasefirebase-realtime-database

解决方案


推荐阅读