Обновите пользователя с помощью Firebase Cloud Functions - PullRequest
1 голос
/ 16 февраля 2020

Я хотел бы найти пользователя по номеру телефона и обновить его displayName в облачных функциях Firebase с помощью Admin SDK. Когда я пытаюсь запустить этот код, например:

import * as admin from 'firebase-admin'
admin.auth().getUserByPhoneNumber(phone).then((user) => {
   user.displayName = newName;
}).catch((reason) => console.log(reason['message']));

, я получаю следующее сообщение:

Невозможно назначить только для чтения свойство 'displayName' объекта '# UserRecord'

Хотя я понимаю это исключение, я не могу придумать другого способа сделать это. Есть идеи?

1 Ответ

5 голосов
/ 16 февраля 2020

Метод getUserByPhoneNumber() возвращает UserRecord, который не имеет никакого метода для изменения объекта user.

Вам необходимо использовать updateUser() метод для этого, как показано ниже:

//....
return admin.auth().getUserByPhoneNumber(phone)
.then(userRecord => {
   return admin.auth().updateUser(userRecord.uid, {displayName: newName});
})
.catch((reason) => console.log(reason['message']));

Не забудьте вернуть цепочку Promise, если ваша облачная функция является фоновой, см https://firebase.google.com/docs/functions/terminate-functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...