2017-02-07 4 views
0

В услуги \ session.js:аутентификации сеанса Ember Firebase не кажется инъекционные

import Ember from 'ember'; 

    export default Ember.Service.extend({ 
     currentUser: null, 
     login(user){ 
     this.set('currentUser', user); 
     console.log("currentUser in service session js"+currentUser); 
     }, 
    }); 

В index.js:

export default Ember.Route.extend({ 
    firebaseApp: Ember.inject.service(), 
    session: Ember.inject.service(), 


     beforeModel() { 
     const auth = this.get('firebaseApp').auth(); 
     const user1 = auth.currentUser; 

     if ((user1 !== null)&&(user1 !== undefined)&&(user1 !== "")) 
     { 
      const em=user1.email; 
      const sessionUser=this.get("session").login(user1); 

      console.log("this is email in index route beforeModel "+em); 
      console.log("this is sessionUser email in index route beforeModel "+sessionUser); 

Я использую firebase AUTH, который работает отлично. Однако, когда я пытаюсь ввести текущего пользователя в сеанс, который я создал в службе, оба sessionUser и currentUser получают неопределенные сообщения об ошибках. У меня есть user1.email правильно распознано, так как определяется модель пользователя. Любые входы?

+0

Это не ответ на ваш вопрос, но если вы не можете сделать работу Firebase, вы можете попробовать Ember Simple Auth (что тоже не просто) –

+0

спасибо, но firebase работает, только сеанс еще не работает. должна быть моя собственная ошибка где-то. – bxff01

+0

Несвязанный, но вы можете оптимизировать до 'if ((user1! == null) && (user1! == undefined) && (user1! ==" "))' to 'if (! Ember.isBlank (user1))' , Документация на http://emberjs.com/api/#method_isBlank –

ответ

1

Возможно начать обновление:

console.log("currentUser in service session js"+currentUser); 

в

console.log(`currentUser in service session js ${user}`); 
+0

спасибо Ян, над решением работает. Итак, теперь у меня есть объект «пользователь», введенный из index.js в session.js. Я не уверен, почему this.set ('currentUser', user) не дает значение currentUser, так как я не могу использовать console.log для его отображения. Но что более важно, как получить это свойство сеанса пользователя (или currentUser) с маршрута. Я пытаюсь this.get ('session.user') или const sessionUser = this.get ('session.user') или использовать 'currentUser' для замены 'user', но никто не работает, когда я тестирую с помощью console.log. – bxff01

+0

Для обновления и закрытия this.get ('session.currentUser') работает электронная почта. Благодарю. – bxff01

1

Вы также можете попробовать первый логин и только после установки CurrentUser:

const sessionUser=this.get("session").login(user1); 

на что-то вроде:

this.get("session").login(user1); 
const.sessionUser = this.get("sessions.currentUser"); 
Смежные вопросы