Firebase实时数据库存储问题:如何将生成的多个随机值逐条存储
问题分析
你当前的核心问题有两个:
- 用
<br>标签拼接所有随机值成单个字符串,导致存储内容混入无效HTML标签 - 错误地将带
<br>的字符串作为Firebase节点路径的一部分,既不符合预期格式,还会产生非法路径
解决方案
要实现你想要的存储结构,需做两处关键调整:
- 改用数组存储生成的随机值,避免混入HTML标签
- 将每个随机值作为
/All_Chassis下的独立子节点,分别存储对应的Model和DOM信息
修改后的完整代码
var unit = document.getElementById("unit").value; var all = []; // 替换字符串为数组存储随机值 for(var j=0; j<unit; j++) { var ts = String(new Date().getTime()), out = ''; for(var i = 0; i < ts.length; i += 3) { out += Number(ts.substr(i, 2)).toString(36); } var ans = Math.random().toString(15).slice(5); var para = (out + ans); all.push(para.slice(0, 15)); // 将每个随机值推入数组 } // 页面展示时再用<br>拼接数组元素 console.log(all); document.getElementById("output").innerHTML = all.join('<br>'); // 正确写入Firebase Realtime Database const chassisRef = app.ref('/All_Chassis'); all.forEach(chassisId => { chassisRef.child(chassisId).set({ Model: Model.value, DOM: DOM.value }); });
最终存储结构
修改后,Firebase中的数据结构会变为:
All_Chassis ├─ gb2r142b559971e │ ├─ Model: "你的Model值" │ └─ DOM: "你的DOM值" ├─ gb2r1421c555a14 │ ├─ Model: "你的Model值" │ └─ DOM: "你的DOM值" └─ gb2r142bc11493e ├─ Model: "你的Model值" └─ DOM: "你的DOM值"
每个随机值都是独立的可操作节点,完全匹配你期望的键值对格式。
内容的提问来源于stack exchange,提问作者MOHAMMAD ZEESHAN
相关产品推荐
相关产品推荐

