Я использую структуру базы данных FireBase в реальном времени, как показано ниже.и хочу извлечь все модель , которая имеет red
цвет.
FireBase
{
"models": {
"model1": {
"modelName": "model 1",
"color": {
"red": true,
"blue": true,
"green": true
}
},
"model2": {
"modelName": "model 2",
"color": {
"yellow": true,
"blue": true,
"green": true
}
},
"model3": {
"modelName": "model 3",
"color": {
"red": true,
"yellow": true,
"pink": true
}
},
"model4": {
"modelName": "model 4",
"color": {
"red": true,
"orange": true,
"white": true
}
}
}
}
Я пытался использовать приведенный ниже запрос, но не получил ожидаемогорезультат.
AngularJS
let fbRef = firebase.database().ref('models');
fbRef
.orderByChild('red')
.equalTo(true)
.once('value', function(data){
console.log('result : ', data);
});
Правила FireBase
{
"rules": {
".read": true,
"$modelID": {
".read": true,
".indexOn": ["red", "blue", "green", "orange", "pink", "white", "yellow"]
}
}
}
Ожидаемые результаты
{
"model1": {
"modelName": "model 1",
"color": {
"red": true,
"blue": true,
"green": true
}
},
"model3": {
"modelName": "model 3",
"color": {
"red": true,
"yellow": true,
"pink": true
}
},
"model4": {
"modelName": "model 4",
"color": {
"red": true,
"orange": true,
"white": true
}
}
}