2016-07-21 8 views
8

Firebase v3 Reference Guide zeigt an, dass createUserWithEmailAndPassword(email, password)firebase.Promise zurückgibt, die nicht null firebase.User enthalten.Firebase v3 createUserWithEmailAndPassword .thier Versprechen

Die Firebase v3 Authenticate with Firebase using Password-Based Accounts Guide zeigt das folgende Beispiel

firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    // ... 
}); 

Meine Frage ist, ich möchte eine Funktion ausgelöst, die den Benutzer auf meine users Knoten in meiner Datenbank in Echtzeit erstellt. Ich möchte den angezeigten Nutzernamen aus dem Registrierungsformular für Websites einbeziehen. So, es scheint, als ob ich eine .then machen möchte und wenn die createUserWithEmailAndPassword Methode erfolgreich war, möchte ich eine Funktion auslösen, die den neuen Benutzer (mit Anzeigename) in meinen Realtime Database users Knoten schreibt.

Wie ändere ich das Beispielskript in einen .then Stil?

Antwort

19

Hier ist die korrekte Verwendung von then() und Fehlerbehandlung mit createUserWithEmailAndPassword lesen:

firebase.auth().createUserWithEmailAndPassword(email, password).then(function(user) { 
    var user = firebase.auth().currentUser; 
    logUser(user); // Optional 
}, function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
}); 

function logUser(user) { 
    var ref = firebase.database().ref("users"); 
    var obj = { 
     "user": user, 
     ... 
    }; 
    ref.push(obj); // or however you wish to update the node 
} 

ich ein weiteres Beispiel haben here .

1

überprüfen diese, müssen Sie Nutzlast oder Snapshot (Feuerbasis Begriff)

firebase.auth().createUserWithEmailAndPassword(credentials.email, credentials.password) 
       .then((authData) => { 
        console.log("User created successfully with payload-", authData); 
        //Write code to use authData to add to Users 
       }).catch((_error) => { 
        console.log("Login Failed!", _error); 
       }) 
0

Hier ist was ich getan habe und es hat funktioniert.

 function registerUsername(email,password,displayName){ 
      firebase.auth().createUserWithEmailAndPassword(email, password).then(function(value) { 
       console.log(value); 
       }).catch(function(error) { 
        console.log(error); 
       }); 
     } 
+0

wenn man dann das Gefühl, kann es als Antwort akzeptieren :) –

+0

@MithunPattankar ich Ihre Antwort gestimmt, aber akzeptiert die andere nur bcs es leichter war, für mich zu lesen. Die ES6, die du benutzt hast, ist scharf, aber nicht so einfach für mich. Vielen Dank für Ihre Antwort. –