【问题标题】:How can I update inner data in firebase realtime database如何更新firebase实时数据库中的内部数据
【发布时间】:2021-09-22 13:55:36
【问题描述】:

我正在尝试向以下版本对象中的 buildVersion 对象添加一个新值。如果请求正文中的市场值与市场名称匹配,并且需要将新值添加到带有新 id 的 buildVersion 列表中。这是数据库的样子。

我尝试使用 orderByChild 查询数据

const cMetaData = rootRef.child("/metadata/version").orderByChild('market').equalTo(objRequest[0].market).once("value").then((snap) => {
//here is need to update the buildVersion that matches the Object Request value 

}

【问题讨论】:

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


    【解决方案1】:

    如果我正确理解您的问题,如果您只想更新 buildVersion 节点的一个元素,则以下内容应该可以解决问题:

     rootRef
        .child('/metadata/version')
        .orderByChild('market')
        .equalTo(objRequest[0].market)
        .once('value')
        .then((snap) => {
          snap.ref.child('0/buildVersion/0').set('8.15');
        });
    

     ...
       .then((snap) => {
         snap.ref.child('0/buildVersion').set(['7.15', '8.15']);
       });
    

    如果要更新整个buildVersion 节点。

    【讨论】:

    • 很抱歉沟通不畅。我想更新与市场价值匹配的 buildVersion。示例:考虑 objRequest[0].market = 'CORE' 和 objRequest[0].buildVersion = '8.9' 然后我需要使用 '8.9' 更新 CORE 市场对象,因此新节点看起来像。 ` "buildVersion": [ "6.15", "6.16", "8.90" ], "market": "CORE" `
    • 你到底是什么意思?对于CORE,您要更新buildVersion 元素0(即6.15)和US元素16.16)-因为CORE 的索引为0,索引为US 是 1-
    • 是的,没错。 CORE 的索引为 0,US 的索引为 1。我想用新值更新 CORE 的 buildVersion。
    猜你喜欢
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多