从父节点读取特定叶/子节点的Firebase规则
我的firebase数据库如下所示从父节点读取特定叶/子节点的Firebase规则,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我的firebase数据库如下所示 "students" : { "firebase_key_1" : { "Name" : "blah blah", "Address" : "blah blah", "Roll No" : "blah blah", "Marks" : { "Sub1" : "blah", "Sub2" : "blah", "Sub3" : "blah", "Total" : "
"students" : {
"firebase_key_1" : {
"Name" : "blah blah",
"Address" : "blah blah",
"Roll No" : "blah blah",
"Marks" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
},
"class" : "blah blah",
"Transportation" : "blah blah",
"Department" : "blah blah",
},
"firebase_key_2" : {
"Name" : "blah blah",
"Address" : "blah blah",
"Roll No" : "blah blah",
"Marks" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
},
"class" : "blah blah",
"Transportation" : "blah blah",
"Department" : "blah blah",
},
"firebase_key_3" : {
"Name" : "blah blah",
"Address" : "blah blah",
"Roll No" : "blah blah",
"Marks" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
},
"class" : "blah blah",
"Transportation" : "blah blah",
"Department" : "blah blah",
}
}
我正在使用RESTAPI从firebase检索数据。Restapi url看起来像“Marks/Total”&startAt=400
我已经通过firebase规则对学生总数进行了索引。我得到的结果和额外的数据,如姓名,班级,卷号
我希望输出是
"firebase_key_1" : {
"Marks" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
}
},
"firebase_key_2" : {
"Marks" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
}
},
"firebase_key_3" : {
"Marks" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
}
}
是否有通过RestAPi或规则来实现这一点
例如,我们是否有任何规则可以定义要读取的节点
{
"users":{
"students":{
".read" : ["$firebaseKey/Marks"],
".write" : true,
}
}
因此,我可以使用RESTAPI从父节点检索所需的值
任何其他这样做的建议都会很好
提前感谢Firebase数据库始终返回完整的节点。不可能获得与查询匹配的每个节点的子集。要么返回整个节点,要么不返回 通常,这种类型的请求表示您已经合并了多个应该分离的数据类型。在您的情况下,看起来应该有两个顶级集合:
students
和studentMarks
。在students
下,您保留每个学生的属性,由其学生ID键入。在studentMarks
下,您保留每个学生的标记,再次由其学生ID键入
因此:
由于您在
学生
和学生分数
之间使用相同的键,因此您可以轻松地为用户准备这两组数据。但是现在,您也可以只读取每个用户的属性,或者只读取一组用户的标记。我不明白您在这里想要实现什么。您是否可以编辑您的问题以显示:1)您要执行的REST调用,2)该位置的JSON(作为文本),3)您希望从调用返回的结果?我已编辑了上述问题。这不是规则的有效语法:。请阅读:“$firebaseKey/Marks”]
。非常感谢,我将改变结构。我认为会有这样的语法“.read”:[“$firebaseKey/Marks”]。与indexOn相似,这就是为什么我认为我可以坚持这种结构。无论如何,非常感谢。
"students" : {
"firebase_key_1" : {
"Name" : "blah blah",
"Address" : "blah blah",
"Roll No" : "blah blah",
"class" : "blah blah",
"Transportation" : "blah blah",
"Department" : "blah blah",
},
"firebase_key_2" : {
"Name" : "blah blah",
"Address" : "blah blah",
"Roll No" : "blah blah",
"class" : "blah blah",
"Transportation" : "blah blah",
"Department" : "blah blah",
},
"firebase_key_3" : {
"Name" : "blah blah",
"Address" : "blah blah",
"Roll No" : "blah blah",
"class" : "blah blah",
"Transportation" : "blah blah",
"Department" : "blah blah",
}
},
"studentMarks":
"firebase_key_1" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
},
"firebase_key_2" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
},
"firebase_key_3" : {
"Sub1" : "blah",
"Sub2" : "blah",
"Sub3" : "blah",
"Total" : "Total",
}
}