gpt4 book ai didi

ios - 在 Firebase 数据库中查找对象

转载 作者:行者123 更新时间:2023-11-28 15:57:07 25 4
gpt4 key购买 nike

抱歉,我是 Firebase 的新手。这是我的示例数据库。

{
groups:{
#groupid:{
members:{
#userid:
}
name:
}
}
}

enter image description here

我正在尝试查找用户组。当我使用组名搜索时,我能够获取数据:

let lRef = FIRDatabase.database().referenceWithPath("groups")
lRef.queryOrderedByChild("name").queryEqualToValue("one").observeSingleEventOfType(.Value, withBlock: { snapshot in
print("hello world \(snapshot.value)")
})

但是我在members里面用user id搜索是搜不到的。请有人帮助我完成这项工作。

最佳答案

这是嵌套数据的完美示例。

Google 提供了一个很好的documentation关于这个话题。他们建议避免这种情况。

引用一段话:

Avoid nesting data

Because the Firebase Realtime Database allows nesting data up to 32 levels deep, you might be tempted to think that this should be the default structure. However, when you fetch data at a location in your database, you also retrieve all of its child nodes. In addition, when you grant someone read or write access at a node in your database, you also grant them access to all data under that node. Therefore, in practice, it's best to keep your data structure as flat as possible.

您可能会在您的数据库中有另一个节点,其中包含用户元数据。该用户节点应该有一个子节点,其中包含用户所在的所有组。这样您就可以轻松地看到用户所在的组。

如果我是对的,这正是您要实现的目标。

你的数据库会/应该看起来像这样:

{
groups: {
#groupid01: {
members: {
#userid: true,
}
name: #groupname01
},
#groupid02: {
members: {
}
name: #groupname02
}
},
users: {
#userid01: {
groups: {
#groupid01: true,
#groupid02: true
}
},
#userid02: {
groups: {
}
},
...: {},
}
}

希望这对您有所帮助!

关于ios - 在 Firebase 数据库中查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41552318/

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