Reputation:
How can I transform this code ( Promise ):
registerUser(formData) {
firebase.auth().createUserWithEmailAndPassword(formData.email,formData.passwords.password)
.then((user) => {
firebase.database().ref(`/users/${user.uid}`).set({
id: user.uid,
email: formData.email
})
this.routing.navigate(['/login']);
}).catch((error) => {
console.log(error);
})
}
Into this one ( async / await ):
async registerUser(formData){
try{
await firebase.auth().createUserWithEmailAndPassword(formData.email,formData.passwords.password);
firebase.database().ref(`/users/${user.uid}`)
.set({id: user.uid,email: formData.email});
this.routing.navigate(['/login']);
return true;
}catch(error){
return false;
}
}
How can I get user.uid
( which is the registered user uid )? In promises it's so easy, because i just have to pass argument (user) to then.
Thanks, for help: )
Upvotes: 1
Views: 1058
Reputation: 1073978
How can I get
user.uid
...
user
is returned by the await
expression, so add let user =
(or const user =
) in front of it:
async registerUser(formData){
try{
const user = await firebase.auth().createUserWithEmailAndPassword(formData.email,formData.passwords.password);
// ^^^^^^^^^^^^^
firebase.database().ref(`/users/${user.uid}`)
.set({id: user.uid,email: formData.email});
this.routing.navigate(['/login']);
return true;
}catch(error){
return false;
}
}
Upvotes: 3