这是我的文档:
比方说,我可以访问以下键和值:29 August 2018
,14:00 - 15:00
和vyMDLD3V6paRWiA7Xlp12zanT7h1
。如何结合查询中的内容,以便获得父键-LKVpa_1QviUn1RFlEPr
?
我尝试了多个版本:
id
。29 August 2018
29 August 2018
我得到零个结果或整个文档。
最终目标是删除这些节点,因此,如果您知道执行此操作的任何其他方法(除了在数据库中搜索父ID,然后删除),我将不胜感激!
答案 0 :(得分:1)
您可以这样做:
ref.queryOrdered(byChild: "29 August 2018/14:00 - 15:00")
.queryEqual(toValue: "vyMDLD3V6paRWiA7Xlp12zanT7h1")
ref
指向bookedCourtsDaily
。这将起作用,但是为了有效执行,需要在每个时隙上定义一个索引。因此,在您的规则中,您将需要以下内容:
{
"bookedCourtsDaily": {
"$date": {
".indexOn": ["13:00 - 14:00", "14:00 - 15:00", "15:00 - 16:00"] // etc
}
}
}
如果这不适用于您,我建议您在JSON中创建反向查找的更常见方法:
{
"codeToAppointment": {
"vyMDLD3V6paRWiA7Xlp12zanT7h1": "29 August 2018/14:00 - 15:00",
"anotherCode": "28 August 2018/11:00 - 12:00"
}
}
通过这种结构,您可以从“代码”(或JSON中值的其他含义)中查找约会的路径。
像这样的数据复制在NoSQL数据库(如Firebase)中非常普遍。