Firebase ::构建此数据的最佳方式

时间:2016-08-22 12:35:51

标签: firebase firebase-realtime-database

我试图使用firebase来存储和检索我的应用程序的数据..我知道建议对数据进行非规范化,并且可能需要数据复制..

我的情景如下:

  1. 系统中有很多用户..
  2. 系统中有很多帖子..
  3. 任何用户都应该能够获得特定用户的帖子列表..
  4. 每个帖子都有多个用户作为参与者..
  5. 我很想使用以下结构:

    users: {
        abc: {
            name: 'UserA',
            profilePicture: 'imageA.png'
        },
        pqr: {
            name: 'UserB',
            profilePicture: 'imageB.png'
        },
        xyz: {
            name: 'UserC',
            profilePicture: 'imageC.png'
        },
        ...,
        ...,
        ...
    },
    posts: {
        def: {
            title: 'PostA',
            users: {
                abc: true,
                def: true,
                ghi: true,
                ...,
                ...,
                ...
            }
        },
        stu: {
            title: 'PostB',
            users: {
                abc: true,
                xyz: true,
                ...,
                ...,
                ...
            }
        },
        ...,
        ...,
        ...
    }
    

    这个问题是,如果我需要显示每个帖子的用户列表,我需要向POST发出查询,然后为每个用户进行USER的连续调用在该帖子中获取name/profilePicture数据..

    如果我同时在帖子中复制用户信息,问题就变成了如果用户稍后更改了她的profilePicturename,那么现有帖子仍会显示旧数据..

    如何更好地构建这些数据,以便这些案例有效?

    感谢..

1 个答案:

答案 0 :(得分:1)

不要在帖子中复制数据。阅读Firebase Docs about structuring data

最佳做法:

  • 避免嵌套数据
  • 展平数据结构

如果您在帖子中包含数据,则表示您违反了这两条规则(并且您不希望这样做)。

多次通话都不错。