I have a cloud function for onCreate that looks like
exports.addNewUserToCollection = functions.auth.user().onCreate(event => {
const user = event.data; // The Firebase user.
var userData = JSON.parse(JSON.stringify(user));
if (!userData.displayName){
userData.displayName = '(no name)'
}
return db
.collection("users")
.doc(user.uid)
.set(userData);
});
it works fine except when the user signs up via email.
When the user signs up via email they are prompted for a first and last name and this information makes it into the authentication data.
I know this because inside their session I can call getCurrentUser() and retrieve their displayName property.
The event data in the code above however does not contain displayName (or first and last name for that matter)
What gives?
See Question&Answers more detail:os