gpt4 book ai didi

ios - Firebase .indexOn 动态键

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:25 26 4
gpt4 key购买 nike

我已经开始测试 Firebase,但我无法弄清楚关于索引的一件事。我正在根据阅读的内容创建一个结构 - Firebase Data Structuring - 类似于用户和组的示例。 JSON 树看起来像这样:

{
"babies" : {
"-KQSVCXI-ZMz_lQ_Q906" : {
"name" : "Baby",
"parents" : {
"F0o8Gr5GC2SrakUYZpC20efcmk63" : true
}
},
"-KQSf4t9XQC3LnbsxLYS" : {
"name" : "Name2",
"parents" : {
"S6aO6Dx4lgg6anW9S9hu7EJrhVg1" : true
}
}
}
}

我正在尝试为 parent 生 child - 就像 Firebase 示例中的组中有成员一样。我在 iOS 应用程序中使用:

self.babiesReference
.queryOrderedByChild("parents/\(user.uid)")
.queryEqualToValue(true)
.observeSingleEventOfType(.Value, withBlock: { (snapshot) in

// Print value
print(snapshot.value)

}

其中 user.uid 是当前用户的 ID。这工作正常,但唯一剩下的问题是:

Using an unspecified index. Consider adding ".indexOn":"parents/S6aO6Dx4lgg6anW9S9hu7EJrhVg1" at /babies to your securityrules for better performance

如何索引这个由用户 id 呈现的“动态” child ?有没有办法做到这一点,或者我必须更改树结构?

谢谢。

最佳答案

对于这种类型的查询(通常当您需要动态添加索引时)您可能需要设置倒排索引。在你的情况下:

{
"babies" : {
"-KQSVCXI-ZMz_lQ_Q906" : {
"name" : "Baby",
"parents" : {
"F0o8Gr5GC2SrakUYZpC20efcmk63" : true
}
},
"-KQSf4t9XQC3LnbsxLYS" : {
"name" : "Name2",
"parents" : {
"S6aO6Dx4lgg6anW9S9hu7EJrhVg1" : true
}
}
},
"parents": {
"F0o8Gr5GC2SrakUYZpC20efcmk63": {
"babies": {
"-KQSVCXI-ZMz_lQ_Q906": true
}
},
"S6aO6Dx4lgg6anW9S9hu7EJrhVg1": {
"babies": {
"-KQSf4t9XQC3LnbsxLYS": true
}
}
}
}

这种类型的双向链接在 Firebase(以及许多类似的 NoSQL 数据库)中相当常见。

关于ios - Firebase .indexOn 动态键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39238374/

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