【问题标题】:Node.js hosted on firebase : update database with key stored in a variable托管在 firebase 上的 Node.js:使用存储在变量中的密钥更新数据库
【发布时间】:2018-11-07 12:49:09
【问题描述】:

我遇到了一个非常有趣的设计决定,我想更新表单数据库中的给定条目:https://imgur.com/QBLMIkU

到目前为止,我有类似的东西:

update(id : string, key : string, val : string ) : void {

        const dbRef = firebaseAdmin.database().ref('datasets');
        const entry = dbRef.child(id)

    entry.once('value', snap => {

        let content = snap.val()

        if ( content && content[key] ){

            entry.update({ key : val })
        } 

    })

}

@use case: update('-LDc9Wa4Wj1wzEx5CsKN', 'content' 'new content loresum')

关键行是:entry.update({ key : val }),代码不是覆盖content 字段,而是使用键key 和值val 创建一个新条目。如何仅更新 content 字段而不重写整个数据条目?

【问题讨论】:

    标签: node.js firebase firebase-realtime-database


    【解决方案1】:

    如果我正确理解了这个问题,那就是正在编写一个键为“key”的新条目,该条目具有 val 参数的值。在这种情况下:

    let newData = {};
    newData[key] = val;
    entry.update(newData);
    

    基本上,您的entry.update({ key : val }) 是在说“使用'key' 的键值更新记录并使其等于传入的val 参数”。由于您的数据中不存在该键,因此它会创建一个新的键值对,等于“键:我的新值”

    【讨论】:

    • @|Ty|如果我这样做,那么我必须为id 重新创建所有旧数据库条目,这是我希望避免的。如果有一种方法可以传入变量键,以便 JSON 中的键获取变量的值,那就太好了
    猜你喜欢
    • 2017-11-08
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2017-10-20
    • 2019-02-18
    相关资源
    最近更新 更多