2016-08-26 4 views
0

firebase를 백엔드로 사용하여 내 ember 응용 프로그램에 대한 사용자 가입을 시도하고 있습니다. 나는 도리 애드온을 사용자 인증 용으로 사용하고 있으며이를 테스트 해보려고합니다. 내가 시도 할 때 나는 다음과 같은 오류를 얻을 사용자를 가입 : Uncaught TypeError: n.default is not a constructorember.js 및 firebase - 사용자를 등록 할 수 없습니다.

이 내 경로 routes/index.js에 모습입니다 :

import Ember from 'ember'; 
import Firebase from 'firebase'; 

export default Ember.Route.extend({ 
    actions: { 
    signUp: function(){ 
     var controller = this.get('controller'); 
     var firstName = controller.get('firstName'); 
     var lastName = controller.get('lastName'); 
     var email = controller.get('email'); 
     var password = controller.get('password'); 
     var ref = new Firebase("https://my-app-name.firebaseio.com"); 
     var _this = this; 

    ref.createUser({ 
     email : email, 
     password : password 
     }, 
     function(error, userData){ 
     if (error) { 
      alert(error); 
     } else { 
      _this.get('session').open('firebase', { 
      provider: 'password', 
      'email': email, 
      'password': password 
      }).then(function(){ 
      var user = _this.store.createRecord('user', { 
       id: userData.uid, 
       firstName: firstName, 
       lastName: lastName 
      }); 

      user.save().then(function(){ 
       _this.transitionTo('protected'); 
      }); 
      }); 
     } 
     }); 
    } 
    } 
}); 

templates/index.hbs에서 내 템플릿 :

Signup here: <br> 

{{input type="text" value=firstName placeholder="First Name"}}<br> 
{{input type="text" value=lastName placeholder="Last Name"}}<br> 
{{input type="text" value=email placeholder="Email"}}<br> 
{{input type="password" value=password placeholder="Password"}}<br> 
<button {{action "signUp"}}> Sign Up </button> 

내 사용자 모델 :

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    firstName: DS.attr(), 
    lastName: DS.attr() 
}); 

내가 어디로 잘못 가고 있는지 모르겠다. 나는이 가이드를 거의 따라 갔다 : http://vikram-s-narayan.github.io/blog/authentication-with-ember-and-firebase-part-2/, 나는 단지 가입에 초점을 맞추고 단순화를 위해 모든 것을 인덱스에 넣었다.

답변

0

문제점 Firebase 3.0 SDK를 사용하고 있지만 이전 버전의 코드를 사용하고 있습니다. 코드를 내 컨트롤러로 옮겨서 사용하도록 업데이트했습니다. createUserWithEmailAndPassword :

import Ember from 'ember'; 

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

    actions: { 
     signUp() { 
     const auth = this.get('firebaseApp').auth(); 
     auth.createUserWithEmailAndPassword(this.get('email'), this.get('password')). 
     then((userResponse) => { 
      const user = this.store.createRecord('user', { 
      id: userResponse.uid, 
      email: userResponse.email 
      }); 
      return user.save(); 
     }); 
     } 
    } 

});