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 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…