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 オブジェクトになります。成功すると、最初の引数は null になり、2 番目の引数は、uid を含む、新しく作成されたユーザーの属性を含むオブジェクトになります。

したがって、これが への呼び出しの改訂版ですcreateUser()

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

それでも解決しない場合は、詳細情報を提供していただけますか - どこで (行番号) エラーが発生していますか?

それが役立つことを願っています。

于 2015-05-04T22:45:42.803 に答える