ember.js和firebase - 无法注册用户

时间:2016-08-26 06:31:38

标签: ember.js firebase firebase-authentication torii

我正在尝试使用firebase作为后端让用户注册我的ember应用程序。我正在使用torii插件进行用户身份验证,我只是想测试一下。但是,当我尝试注册用户时,我收到以下错误:Uncaught TypeError: n.default is not a constructor

这是我的路线查看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/,除了我只关注注册并将其全部放在索引中以简化。

1 个答案:

答案 0 :(得分: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();
        });
      }
    }   

});