Как использовать 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.

вы можете проверить это здесь:

https://www.npmjs.com/package/ember-emberfire-find-query