如何在Firebase Realtime Database中更新内部数据并向匹配的buildVersion列表新增值
实现步骤与代码
查询到匹配market的节点快照后,遍历快照拿到对应节点的buildVersion子引用,调用Firebase内置的push()方法即可插入带自动生成唯一ID的新条目,push()生成的ID基于时间戳排序,无需手动维护自增ID逻辑。
完整代码示例:
const targetMarket = objRequest[0].market; // 替换为你实际需要存入buildVersion的字段内容 const newBuildItem = { versionCode: 102, versionName: "1.0.2", updateContent: "修复已知问题,优化使用体验", publishTime: Date.now() }; rootRef.child("/metadata/version") .orderByChild('market') .equalTo(targetMarket) .once("value") .then((snap) => { // 先判断是否查询到匹配的market记录 if (!snap.exists()) { console.log("未找到对应market的版本记录"); return; } // 遍历所有匹配的节点(若market唯一则只会遍历一次) snap.forEach(versionSnap => { // 向buildVersion节点下新增带唯一ID的条目 versionSnap.ref.child("buildVersion").push(newBuildItem) .then(() => console.log("buildVersion新增成功")) .catch(err => console.error("新增失败:", err)); // 若market是唯一字段,取消下方注释终止forEach循环 // return true; }); }) .catch(err => { console.error("查询数据失败:", err); });
如果你的业务规则中market是唯一字段,只需要新增到第一个匹配节点,可以取消代码中return true的注释,减少不必要的遍历。
内容的提问来源于stack exchange,提问作者Sandeep
相关产品推荐
相关产品推荐

