2016-08-26 12 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(); 
     }); 
     } 
    } 

}); 
関連する問題