目前我正在为我的 Firebase 数据库设计数据库布局。我正在浏览许多关于布局应该如何显示的不同教程,但我对什么是正确的感到有点困惑。
我不确定用户应该存储为什么,让我举个例子:
{
"users": {
"alanisawesome": {
"nickname": "Alan The Machine"
},
"gracehop": {
"nickname": "Amazing Grace"
}
}
}
在上面的 Firebase 旧版文档示例中,他们按用户名存储用户。然而在另一个例子中我发现了以下内容:
{
"users": {
"123": {
"name": "Kato"
},
"234": {
"name": "Anant"
}
}
}
他们在这里存储带有 UID 的用户。然后,您可以简单地 push()
新用户,他们的 ID 是随 secret 钥,例如以下 -JRHTHaKuITFIhnj02kE
。
以上哪一项是存储用户的最佳方式?用户名、自定义 UID 还是随机生成的 key ?
最佳答案
当您有一个集合想要按时间顺序排序(其中各个项目没有自然键)时,Firebase 推送 ID 非常有用。所以是博客文章、聊天消息等的列表。
但是当项目具有自然键时,通常最好将它们存储在该自然键下。用户有一个唯一的 ID,通常称为他们的 uid
。除非您有理由不这样做,否则请将用户存储在其 uid
下。通过将它们存储在 uid
下,您可以轻松查找给定用户的数据:ref.child('users').child(user.uid)
。如果您将用户存储在生成的 key (例如推送 ID)下,则必须执行查询才能找到相同的记录。
您从文档中获得的示例使用不同的命名方案。原因是推送 ID 和 UID 都会导致比我们当时在文档中想要的更多困惑。这就是为什么我们在这些情况下选择短的、可读的按键。
关于firebase - 在 Firebase 数据库中存储用户的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38853122/