如何使用 emberfire 为 ember.js 2.0.0 中名称为 equalTo xyz 的所有项目查询 firebase 数据库?

How to use emberfire to query a firebase db for all items with name equalTo xyz in 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 谈论可用的参数。

Arguments

orderBy - String - The property ...
.
.
.

equalTo - String, Number, Null - Creates a query which includes children which match the specified value.

并举个例子...

// app/routes/dinosaurs.js
export default Ember.Route.extend({
  model: function() {
    return this.store.find('dinosaur', {
      orderBy: 'height',
      limitToLast: 10,
      startAt: 5
    });
  }
});

虽然没有显示如何使用 'equalTo'。 我已经测试了所有这些,但我不明白 equalTo 是如何工作的。

SO上还有其他解决方案,但都是pre-v2.0.0。所以我不认为他们会工作 post v2.0.0.

Ember.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
    }
);

我还围绕这段代码尝试了多个不同的版本。什么都没用,所以我认为这里甚至不值得一提。

使用查询功能,您可以组合 orderByChildequalTo 以获得所需的结果:

ref.child('people').orderByChild('name').equalTo('Peter').on('value', ...);

web API reference for equalTo and in the Web guide on complex queries中有一个例子。

因此,在 EmberFire 中,这将转化为以下内容:

this.store.query('person', { orderBy: 'name', equalTo: 'Peter' });

虽然 tstirrat 的响应在大多数情况下都能满足您的要求,但有一个 Ember 插件可用于查询 firebase 搜索。

你可以在这里查看:

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