Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase v3 createUserWithEmailAndPassword .then Promise

Firebase v3 Reference Guide indicates that createUserWithEmailAndPassword(email, password) returns firebase.Promise containing non-null firebase.User.

The Firebase v3 Authenticate with Firebase using Password-Based Accounts Guide shows the following example

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

My question is, I want to fire a function which adds the user to my users node in my Realtime Database. I want to include the users display name that I collected from the sites registration form. So, it seems like I want to do a .then and if the createUserWithEmailAndPassword method was successful I want to fire a function that writes the new user (with display name) to my Realtime Database users node.

How do I modify the example script to a .then style?

like image 401
Ronnie Royston Avatar asked Jul 21 '16 18:07

Ronnie Royston


3 Answers

Here is the correct use of then() and error handling with createUserWithEmailAndPassword:

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
}

I have another example here.

like image 93
theblindprophet Avatar answered Nov 08 '22 06:11

theblindprophet


Check this, you need to read payload or snapshot(firebase term)

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);
                })
like image 45
Mithun Pattankar Avatar answered Nov 08 '22 05:11

Mithun Pattankar


Here's what I did and it worked.

        function registerUsername(email,password,displayName){
            firebase.auth().createUserWithEmailAndPassword(email, password).then(function(value) {
                console.log(value);
                }).catch(function(error) {
                    console.log(error);
                });
        }
like image 3
Ronnie Royston Avatar answered Nov 08 '22 07:11

Ronnie Royston