使用 Firebase Cloud Functions 更新用户

Ova*_*val 1 javascript firebase firebase-authentication google-cloud-functions firebase-admin

我想通过电话号码查找用户并displayName使用 Admin SDK 在 Firebase Cloud Functions 中更新他们。例如,当我尝试运行此代码时:

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

我收到以下消息:

无法分配给对象“#UserRecord”的只读属性“displayName”

虽然我不明白这个例外,但我想不出不同的方法来做到这一点。任何的想法?

Ren*_*nec 5

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']));
Run Code Online (Sandbox Code Playgroud)

如果您的云函数是后台触发的,请不要忘记返回 Promise 链,请参阅https://firebase.google.com/docs/functions/terminate-functions