2016-06-27 2 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(); 
    } 
    } 
}); 
관련 문제