2016-06-27 4 views
0

認証とデータベースにEmberfireを使用しています。サインインできますが、それ以降は現在のユーザーページにリダイレクトされません。また、カスタムurlにユーザが存在しないというエラーが表示されますが、firebaseコンソールにはリダイレクト先の正しいIDが表示されます。あなたが終了するの認証を待つ必要はありEmberfireでサインインした後、現在のユーザーに移行中に問題が発生しました。

Router.map(function() { 
    this.route('signup'); 
    this.route('home', { path: '/' }); 
    this.route('login'); 
    this.route('user', { path: '/user/:user_id' }); 
}); 

答えて

1

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(); 
    } 
    } 
}); 
関連する問題