想知道这里是否有正确的心态...在firebase(使用Vue)中,我有一个userscollection:
users : {
uid: "09A09IQMSLDK0912",
name: "Gerard",
email: "gerard@mail.com"
}
如果我希望用户添加朋友,是否应该将其添加到用户集合?
users : {
uid: "09A09IQMSLDK0912",
name: "Gerard",
email: "gerard@mail.com",
friends: []
}
...还是我应该开始新的收藏(例如,friendscollection)?
friends: {
{
userId : 09A09IQMSLDK0912,
friendId: 09A09IQMSLDAEAQS
}
}
谢谢您的建议!
答案 0 :(得分:1)
您将需要将其添加为新集合。您不应该为任何集合建模以使其具有可以包含无数项目的array属性,否则,您将遇到大规模问题。
相反,您应该创建另一个集合,并使它们通过您提到的ID关联。
我不是Firebase数据库的专家,但我知道它的功能与MongoDB非常相似。例如,假设数据库是MongoDB。收集项目的大小有一个限制(BSON限制:https://docs.mongodb.com/manual/reference/limits/),如果您允许收集项目具有无限期增长的数组属性,您将很快达到此限制,并且您将无法将项目插入集合。
答案 1 :(得分:0)
您将希望以与以下类似的结构将每个用户的朋友存储在Firebase数据库中:
friends: {
userId1: {
friend1UserId: 123123123121 // timestamp of when the users became friends, or whatever value is useful to your application.
friend2UserId: 123123123123
friend3UserId: 213123123123
}
userId2: {
friend1UserId: 412124124124
friend2UserId: 213123213321
}
}
这是因为Firebase的查询非常有限-通常在NoSQL数据库中,您希望将数据保持在宽而不是更深<< / strong>。