1

我在 Ember-Firebase 应用程序中不断收到错误“指定的电子邮件地址无效”,即使我创建了一个帐户只是为了测试登录。

我想知道这是否与我将信息作为字符串传递的方式有关?

初始化程序/emberfire.js

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


var session = Ember.Object.extend({
    ref : new Firebase("https://nutella.firebaseio.com"),

    addFirebaseCallback: function() {
        var session = this;
        var isNewUser = true;

        this.get("ref").onAuth(function(authData) {
            if (authData) {
                session.set("isAuthenticated", true);
            } else if (authData && isNewUser) {
                session.get("ref").child("users").child(authData.uid).set({
                    provider: authData.provider,
                    name: getName(authData)
                });
            } else {
                session.set("isAuthenticated", false);
            }
        });
    }.on("init"),

    createUser: function() {
        var session = this;
        return new Ember.RSVP.Promise(function(resolve, reject) {
            session.get('ref').createUser({
                        name: "",
                        email: "",
                        password: ""
            },

            function(error, userData) {
                    if (userData) {
                        resolve(userData.uid);
                        session.set("isNewUser", true);
                    } else {
                        reject(error);
                    }
                });
        });
    },

应用程序.js

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

var ref = new Firebase("https://nutella.firebaseio.com");

export default Ember.Route.extend({
    actions: {
        createUser: function() {
            var controller = this;
            controller.get('session').createUser().then(function(user) {
                }, function() {
                });
        },

如果您能指出我正确的方向,我将不胜感激!

4

1 回答 1

0

传递字符串应该不是问题。这里有几个建议:


  1. (这可能很明显,但是...)您似乎将空字符串传递给createUser
session.get('ref').createUser({
  name: "",
  email: "",
  password: ""
},

  1. 假设您故意从代码中删除了字符串,还有一个事实是您传递Firebase.createUser()了一个额外的参数name.

.createUser()文档中,参数被列为:

credentials 对象
包含与新用户帐户对应的电子邮件和密码属性的对象。

onComplete 函数
创建用户帐户时将调用的回调函数。失败时,第一个参数将是一个指示失败的 Error 对象,带有机器可读的代码属性。成功时,第一个参数将为空,第二个参数将是一个包含新创建用户属性的对象,包括 uid。

因此,这是您致电的修订版createUser()

session.get('ref').createUser({
  email: "some@user.com",
  password: "somepassword123"
},

如果不这样做,您能否提供更多信息 - 您在哪里(行号)收到该错误?

希望有帮助。

于 2015-05-04T22:45:42.803 回答