:
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel: function() {
return this.get('session').fetch().catch(function() {});
},
actions: {
signIn: function() {
var controller = this.get('controller');
var email = controller.get('email');
var password = controller.get('password');
this.get('session').open('firebase', { provider: 'password', 'email': email, 'password': password}).then(function(data) {
console.log(data.currentUser);
});
let uid = this.get('session').get('uid');
this.store.findRecord('user', uid).then(user => {
console.log(user.get('firstName'));
this.transitionTo('user', uid);
});
},
signOut: function() {
this.get('session').close();
}
}
});
はここに私のルータです:
は、ここに私のログインコントローラです。それは.then
のためのものです。現在のコードでは、認証が完了する前にsession
からuid
が取得されています。
これは動作するはずです:
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel: function() {
return this.get('session').fetch().catch(function() {});
},
actions: {
signIn: function() {
var controller = this.get('controller');
var email = controller.get('email');
var password = controller.get('password');
var self = this;
this.get('session').open('firebase', { provider: 'password', 'email': email, 'password': password}).then(function(data) {
console.log(data.currentUser);
let uid = this.get('session').get('uid');
this.store.findRecord('user', uid).then(user => {
console.log(user.get('firstName'));
self.transitionTo('user', uid);
});
});
},
signOut: function() {
this.get('session').close();
}
}
});