【问题标题】:Correct Way To Store Users In Firebase Database在 Firebase 数据库中存储用户的正确方法
【发布时间】:2016-12-15 15:22:10
【问题描述】:

目前我正在为我的 Firebase 数据库进行数据库布局。我正在浏览许多关于布局外观的不同教程,但我对什么是正确的有点困惑。

我不确定用户应该存储为什么,让我举个例子:

{
  "users": {
    "alanisawesome": {
      "nickname": "Alan The Machine"
    },
    "gracehop": {
      "nickname": "Amazing Grace"
    }
  }
}

在上面来自 Firebase Legacy 文档的示例中,他们按用户名存储用户。然而在另一个例子中,我发现了以下内容:

{
  "users": {
    "123": {
      "name": "Kato"
    },
    "234": {
      "name": "Anant"
    }
  }
}

在这里,他们使用 UID 存储用户。然后你可以简单地只push()新用户,他们的ID是随机键,比如下面的-JRHTHaKuITFIhnj02kE

以上哪种方式是存储用户的最佳方式?用户名、自定义 UID 还是随机生成的密钥?

【问题讨论】:

    标签: firebase firebase-realtime-database


    【解决方案1】:

    当您有一个想要按时间顺序排序的集合时,Firebase 推送 ID 非常有用,其中各个项目没有自然键。所以是博客文章、聊天消息等的列表。

    但是当项目具有自然键时,通常最好将它们存储在该自然键下。用户有一个唯一的 id,通常称为他们的uid。除非您有理由不这样做,否则将用户存储在他们的uid 下。通过将它们存储在uid 下,您可以轻松查找给定用户的数据:ref.child('users').child(user.uid)。如果您将用户存储在生成的密钥(例如推送 ID)下,则必须执行查询才能找到相同的记录。

    您从文档中获得的示例使用了不同的命名方案。这样做的原因是,推送 ID 和 UID 都会导致比我们当时在文档中想要的更多的混乱。这就是我们在这些情况下选择简短易读键的原因。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多