假设我在Firebase数据库中有以下数据
{
"carros" : {
"-LAy3Qqrvq_sIhyLJQED" : {
"añoFabricacion" : 1932,
"marca" : "toyota",
"nombre" : "nombre1"
},
"-LAy3r-Gm_NWW9_VkGR3" : {
"añoFabricacion" : 1931,
"marca" : "audi",
"nombre" : "nombre2"
},
"-LAy3v9L2wecTDZqpok9" : {
"añoFabricacion" : 1934,
"marca" : "toyota",
"nombre" : "nombre3"
}
}
}
我想在控制台中打印属性" nombre"其中" marca"属性等于" toyota"。我写了一个控制器代码如下:
import Controller from '@ember/controller';
export default Controller.extend({
actions: {
mostrar() {
this.get('store').query('carro', {
filter: {
marca: 'toyota'
}
}).then(function(carros) {
carros.forEach(function(carro) {
console.log(carro.get('nombre'));
})
});
}
}
});
该模型的相应代码" carro.js"是:
import DS from 'ember-data';
export default DS.Model.extend({
nombre: DS.attr('string'),
marca: DS.attr('string'),
añoFabricacion: DS.attr('number')
});
问题在于我获得了以下输出:
nombre1
nombre2
nombre3
但正确的输出必须是:
nombre1
nombre3
为什么我收到此错误?
答案 0 :(得分:3)
根据此处的文档:https://www.learnhowtoprogram.com/ember-js/ember-extended/firebase-queries
看起来正确的查询如下:
import Controller from '@ember/controller';
export default Controller.extend({
actions: {
mostrar() {
this.get('store').query('carro', {
orderBy: 'marca'
equalTo: 'toyota'
}).then(function(carros) {
carros.forEach(function(carro) {
console.log(carro.get('nombre'));
});
});
}
}
});