Как использовать emberfire для запроса базы данных firebase для всех элементов с именем equalTo xyz в ember.js 2.0.0?
Я новичок в ember.js и firebase. Я пытался сделать что-то, что мне нужно, чтобы запросить БД для ключа, соответствующего определенному значению.
согласно guides.emberjs.com, следующий пример должен работать:
this.store.query('person', { filter: { name: 'Peter' } }).then(function(peters) {
// Do something with `peters`
});
но это не так. Видимо, потому что я использую аддон emberfire. После буквально нескольких часов поиска в гугле не было четкого решения.
на emberfire docs говорить о наличии аргументы.
Аргументы
заказатьпо -строка - недвижимость ...
.
.
.equalTo -строка, , Null - создает запрос, который включает дочерние элементы, соответствующие указанному значению.
и приведите пример...
// app/routes/dinosaurs.js
export default Ember.Route.extend({
model: function() {
return this.store.find('dinosaur', {
orderBy: 'height',
limitToLast: 10,
startAt: 5
});
}
});
хотя и без показывает, как использовать 'получается'. Я проверил их все, но не смог понять как!--4--> строительство.
есть и другие решения по этому поводу, но все они предварительно v2.0.0. Поэтому я не думаю, что они будут работать после v2.0.0.
Эмбер.отладочная информация js:
DEBUG: -------------------------------
DEBUG: Ember : 2.0.0
DEBUG: Ember Data : 2.0.0
DEBUG: Firebase : 2.3.1
DEBUG: EmberFire : 1.6.0
DEBUG: jQuery : 1.11.3
DEBUG: -------------------------------
используемая база данных:https://shoutoutdb.firebaseio.com/users
Я не совсем понимаю, как equalTo должен работать здесь,но я тоже не понимаю. Надеюсь, кто-то здесь захочет помочь.
если вы думаете, что вопрос нуждается в каком-либо улучшении, пожалуйста, спросите. Я изложил все так подробно, как считал нужным.
Спасибо заранее. :)
изменить: Код, который я пытался использовать:
$E.store.find('user',{name:'Alpha'}).then(
function (data) {
//stuff done with the data
}
);
я тоже пробовал несколько разных версий вокруг этого кода. Ничего не сработало, поэтому я не думаю, что стоит даже упоминать их здесь.
2 ответов
используя возможности запроса, вы можете объединить orderByChild
и equalTo
чтобы получить желаемый результат:
ref.child('people').orderByChild('name').equalTo('Peter').on('value', ...);
есть пример в ссылка на веб-API для equalTo и в веб-руководстве по сложных запросов.
Итак, в EmberFire это будет означать следующее:
this.store.query('person', { orderBy: 'name', equalTo: 'Peter' });
хотя ответ tstirrat поможет вам в большинстве случаев, есть аддон Ember для запроса поиска firebase.
вы можете проверить это здесь: