在firebase上托管的Node.js:使用存储在变量

时间:2018-05-28 23:51:21

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

我反对一个非常有趣的设计决定,我想更新表格数据库中的给定条目: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字段而不重写整个数据条目?

1 个答案:

答案 0 :(得分:0)

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

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

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