gpt4 book ai didi

json - Firebase 数据库 : How to save a list of friends per user?

转载 作者:行者123 更新时间:2023-12-01 08:08:14 26 4
gpt4 key购买 nike

每个用户都有一个具有相同键的项目列表,例如 friend 。我知道这个例子是错误的,因为每个键都应该是唯一的。我怎样才能以 JSON 格式做到这一点?

 {
"users" : {
"jmEcUjPaXVXHdsaddasdFrh1" : {
"Name" : "John",
"friends" : {
"Name" : "Peter",
"Name" : "Bob",
"Name" : "Lisa"
}
}
}
}

我尝试了这个,但我不确定这是否是一个好的解决方案

{
"users" : {
"jmEcUjPaXVXHdsaddasdFrh1" : {
"Name" : "John",
"friends" : {
"Peter" : "true",
"Bob" : "true",
"Lisa" : "true"
}
}
}
}


#askFirebase

最佳答案

您正在寻找的是存储一组 friend 。

{
"users": {
"jmEcU..." : {
"Name" : "John",
"friends" : [
"Peter",
"Bob",
"Lisa"
]
}
}
}

但是,使用具有分布式数据的数组存在一些并发问题。我建议你认真阅读this post了解将数组与 Firebase 数据库结合使用的含义。

如果经过this section of the post之后,并且您确定不能使用数组,这里有一些关于新结构的建议

结构1:使用 friend 的名字作为 key 。您可以使用任何值作为值,只要它不是 null 即可。您可以循环遍历 friends 的所有子级并获取 key 。

优点:非常快速地查明一个用户是否与另一个用户是好友 - /users/{id}/friends/{name} 存在

缺点:每个 friend 的名字必须是唯一的

{
"users": {
"jmEcU..." : {
"Name" : "John",
"friends" : {
"Peter" : true,
"Bob" : true,
"Lisa" : true
}
}
}
}

结构 2:使用 Firebase 的 Push 创建唯一的 ID 并用作键,将好友的姓名作为值。您可以循环遍历 friends 的所有子级并获取值。

优点: friend 的名字不必是唯一的

{
"users": {
"jmEcU..." : {
"Name" : "John",
"friends" : {
"-JGnfnf..." : "Peter",
"-JGnfoi.." : "Bob",
"-JGnfuy.." : "Lisa"
}
}
}
}

如果您需要的 friend 不仅仅是名字,我建议存储 friend 的用户 ID,而不是代表 friend 详细信息的对象。如果您的用户 ID 是唯一的,这应该可以解决结构 1 的缺点,并使其成为两个选项中更好的一个。

关于json - Firebase 数据库 : How to save a list of friends per user?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38751561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com