【问题标题】:Firebase Admin SDK update only given argumentsFirebase Admin SDK 仅更新给定参数
【发布时间】:2021-05-20 09:54:28
【问题描述】:

我有一个包含 firebase 云功能的 firebase 项目,其中一个设置为更新身份验证和“用户”集合中的用户。我想创建一个名为 updateUser 的函数,它只更新请求中发送的属性。问题是如果没有在请求中发送,我不知道如何告诉函数不要设置/更新此属性,例如: 注意:下面的代码是打字稿

    //update user using firebase auth
    const res = await admin.auth().updateUser(uid,
        {
            password: data.password,
            photoURL: data.photoURL,
        }
 

只有在 data.password 存在的情况下,我才能告诉函数更新密码?在 admin.auth() 中不允许使用 turnery/if 语句。 UpdateRequest 实例。

【问题讨论】:

    标签: node.js firebase-authentication google-cloud-functions firebase-admin


    【解决方案1】:

    updateUser 调用会更新您传入的所有属性。因此,如果您希望某个属性不被更新,请不要将其传递到调用中。

    例如:

    let updates = {};
    if (data.password) updates.password = data.password;
    if (data.photoURL) updates.photoURL = data.photoURL;
    
    const res = await admin.auth().updateUser(uid, updates);
    

    【讨论】:

    • 是的,你是对的,我虽然在调用函数之前构建更新,但问题是,'upates' 的类型是什么?常规地图不会这样做,文档指出传入的数据地图属于 admin.auth() 类型。更新请求
    猜你喜欢
    • 2021-06-23
    • 2021-11-17
    • 2020-09-05
    • 2018-03-20
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2019-04-06
    • 2021-07-29
    相关资源
    最近更新 更多