6

私はember.jsとfirebaseが初めてです。定義された値に一致するキーについてDBにクエリを実行する必要があるものを作成しようとしています。

guides.emberjs.comによると、次の例が機能するはずです。

this.store.query('person', { filter: { name: 'Peter' } }).then(function(peters) {
  // Do something with `peters`
});

しかし、そうではありません。どうやら私はemberfireアドオンを使用しているためです。文字通り何時間ものグーグル検索の後、明確な解決策はありませんでした。

emberfireのドキュメントでは、利用可能な引数について説明しています。

引数

orderBy -文字列- プロパティ ...
.
.
.

equalTo - StringNumberNull - 指定された値に一致する子を含むクエリを作成します。

そして例を挙げて...

// 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にはこれに関する他の解決策がありますが、それらはすべてv2.0.0より前のものです。したがって、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
    }
);

また、このコードについて複数の異なるバージョンを試しました。何も機能しなかったので、ここで言及する価値さえないと思います。

4

2 に答える 2

15

組み合わせることができるクエリ機能を使用して、目的の結果を取得しますorderByChildequalTo

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

equalTo の Web API リファレンスと複雑なクエリに関する Web ガイドに例があります。

したがって、EmberFire では、これは次のように変換されます。

this.store.query('person', { orderBy: 'name', equalTo: 'Peter' });
于 2015-10-12T21:19:48.603 に答える
1

ほとんどの場合、tstirrat の応答で問題は解決しますが、firebase 検索をクエリするための Ember アドオンがあります。

ここで確認できます:

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

于 2017-01-08T10:36:51.460 に答える