"vehicles" : {
"-KbwlIGLm6dxffPJoJJB" : {
"fuel" : "petrol",
"groups" : {
"-KdWh_9KVF16efcSdrji" : true,
"-Kdb1G720MDgbuR3nPBL" : true
},
"make" : "Honda",
"model" : "City",
"name" : "Honda City",
"speed_limit" : 100,
"tank_size" : 32,
"type" : "car"
},
"-KdU-BlfEdqzKxFjGI3D" : {
"fuel" : "petrol",
"groups" : {
"-KdWh_9KVF16efcSdrji" : true
},
"make" : "yamaha",
"model" : "FZ",
"name" : "Yamaza FZ",
"speed_limit" : 60,
"tank_size" : 12,
"type" : "bike"
}
}
我想检索groups
具有-KdWh_9KVF16efcSdrji
并且密钥必须等于true的结果。
vehicles_ref.child("groups").orderByChild("-KdWh_9KVF16efcSdrji").equalTo(true).on
("value", function (snapshot) {
console.log(snapshot.val());
});
但目前我已按上述标准获得NULL
。
我更改了查询
vehicles_ref.orderByChild("/groups/-KdWh_9KVF16efcSdrji").equalTo(true).on("value", function (snapshot) {
console.log(snapshot.val());
});
现在获得结果,但现在收到警告
FIREBASE警告:使用未指定的索引。考虑添加" .indexOn":" groups / -KdWh_9KVF16efcSdrji" at / vehicles to your security rules以获得更好的性能
如何添加索引以删除此警告?
答案 0 :(得分:0)
我也发出了警告,我发送了firebase,我在查询中过滤查询,查找具有相同ID的项目。警告消息“.indexOn”是指数据库中的规则,应通过将“.indexOn”添加到您尝试对项目进行排序的组中来检查该规则。
{
"scores": {
"bruhathkayosaurus" : 55,
"lambeosaurus" : 21,
"linhenykus" : 80,
"pterodactyl" : 93,
"stegosaurus" : 5,
"triceratops" : 22
}
}
因为恐龙的名字只是关键。 我们可以在节点/分数中添加.value规则来优化我们的查询:
{
"rules": {
"scores": {
".indexOn": ".value"
}
}
}
您可以使用以下链接: https://firebase.google.com/docs/database/security/indexing-data?hl=es-419