【问题标题】:Structuring a friend list in a Firebase database在 Firebase 数据库中构建好友列表
【发布时间】:2018-01-28 12:51:27
【问题描述】:

我正在寻找实现朋友系统 Firebase 数据库的最佳方式(或至少是正确方式),其中数据库中的每个用户都有自己的信息(他的姓名、头像、电子邮件等)和好友列表。

问题是我想不出一种好的、高效的方式来将信息存储在数据库中,例如,如果我以以下方式存储数据-

{
    "users": {
        "johnappleseed": {
            // name, profile picture URL, email, phone, etc...
            "friends": {
                "alice": true,
                "bob": true,
                "james": true,
                "johnappleseed2": true,
                // ...
            }
        },
        "johnappleseed2": {
            // ...
        }   
    }
}

我希望应用程序显示某个用户的朋友列表(显示朋友的姓名、头像等)。我仍然需要为每个人执行服务器请求> 列表中的朋友(而 AFAIK 执行大量服务器请求被认为是一种不好的做法)来获取我想在他们的用户名之外显示的任何信息......另外,当用户更改他们的用户名时会发生什么?

谁能提出更好的解决方案或更有意义的结构?

【问题讨论】:

    标签: json firebase database-design firebase-realtime-database nosql


    【解决方案1】:

    有一篇很好的关于在 firebase 上构建数据的文章 https://firebase.google.com/docs/database/web/structure-data

    在你的情况下,我会这样做

      /users:
            21532761536: <-- user id
                name: henk
                birthdate: 14-05-2016
            27361726362:
                name: priscilla
                birthdate: 14-05-2016
    
        /friends:
            21532761536: <-- user id (henk)
                27361726362: true, <-- friends user id (priscilla)
                18237821732: true,
            27361726362:
                72163721637: true,
    

    【讨论】:

    • 我对这个解决方案的主要问题是它需要对服务器执行多个请求才能检索一个简单的用户列表......但在做了一些研究后,我发现 Firebase' s 实时数据库使用单个连接执行请求,这使得它更快、更灵活,从而使这个答案成为一个很好的答案。
    • @Itamar 那么你是如何显示特定用户的好友列表的呢?您查询了好友的用户 ID,然后查询了每个好友的用户信息?那么如果一个用户有 100 个朋友,你查询 101 次?
    • 如果您有 101 个好友,为避免大量下载,请限制加载速度
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 2017-12-09
    • 1970-01-01
    • 2015-03-29
    • 2018-01-02
    • 1970-01-01
    相关资源
    最近更新 更多