Firebase v3 Reference Guide indicates that createUserWithEmailAndPassword(email, password)
returns firebase.Promise
containing non-null fireb
Just for future stumbles upon it, an await-async example:
export const doCreateUserWithEmailAndPassword = async (pEmail, pPassword) => {
try {
const authResult = await app.auth().createUserWithEmailAndPassword(pEmail, pPassword);
usersRef.doc(authResult.user.uid)
.set({
email: pEmail,
created: firebase.firestore.FieldValue.serverTimestamp(),
});
}
catch(error){
console.log(error);
}
}
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);
});
}
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.
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);
})