Невозможно добавить «дополнительную информацию» пользователю, когда он создан методом createUser()
из Admin SDK.Документация объясняет, что вам необходимо передать объект CreateRequest
, который содержит определенное количество полей.
Если вы хотите добавить дополнительную информацию, вам потребуется, как вы упомянули, чтобы создать дополнительный документ в вашей базе данных (например, в коллекции users
в Firestore).
Вы можете использовать следующий код в облачной функции (т.е. используя Admin SDK):
...
return admin
.auth()
.createUser({
email: email,
emailVerified: false,
password: password,
displayName: userName,
disabled: false
})
.then(userRecord => {
const userId = userRecord.uid;
const userDocRef = admin
.firestore()
.collection('users')
.doc(userId);
return userDocRef.set(userDocRef, {
userName: userName,
firstName: firstName,
lastName: lastName,
organization: 99
});
})
.then(....)
Обратите внимание, что photoURL
является одним из возможных полей для объекта CreateRequest
.Поэтому вы можете использовать это поле или создать свое собственное поле в пользовательском документе.
Обновление на основе ваших комментариев:
Я понимаю, что вы хотитечтобы сохранить дополнительные документы пользователей в базе данных Firebase Realtime (а не в Firestore) и чтобы у вас были проблемы с установкой правильного значения для userUid.Вы должны использовать обозначение в квадратных скобках следующим образом:
var update = {};
update[userUid] = { organization: 999 };
return usersRef.set(update);