Ember CLI と組み合わせて firebase を使用しています。私は次の設定をしています:
ember.debug.js:6401 DEBUG: Ember : 2.4.5
ember.debug.js:6401 DEBUG: Ember Data : 2.5.1
ember.debug.js:6401 DEBUG: Firebase : 2.4.2
ember.debug.js:6401 DEBUG: EmberFire : 1.6.6
ember.debug.js:6401 DEBUG: jQuery : 2.2.3
私は2つの単純なモデルを持っています
<!-- app/models/user.js -->
import Model from 'ember-data/model';
export default Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
email: DS.attr('string'),
profile: DS.belongsTo('profile', {async: true})
});
そして、私のプロファイルの 2 番目のモデル
<!-- app/models/profile.js -->
import Model from 'ember-data/model';
export default Model.extend({
companyName: DS.attr('string'),
user: DS.belongsTo('user', {async: true})
});
次のプロファイル ルートがあります。
<!-- app/routes/profile.js -->
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.query('user', { orderBy: 'email', equalTo: this.get('session.currentUser.email')}).then(function(user){
console.log(user);
return user;
});
}
});
現在のセッションの電子メール アドレスがデータベース内の電子メール アドレスと等しいかどうかを確認します。そして、ユーザー オブジェクトを返します。これは機能しています。(これがこれを行う正しい方法かどうかわかりませんか?)
私のプロファイル ハンドルバー テンプレートには、次のコードがあります。
<!-- app/templates/profile.hbs -->
{{#each model as |user|}}
{{user.firstName}}
{{user.lastName}}
{{user.profile}}
{{/each}}
これにより、画面に次のように返されます。
frank spin <DS.PromiseObject:ember545>
私の推測では、関係データはまだ受信されていません。この問題を解決する方法がわかりません。そして 2 番目の質問: 現在ログインしているユーザーの確認は正しい方法ですか?