javascript - 我需要更多的嵌套级别来阅读一个简单的(几乎是扁平的)FireBase
问题描述
我已经为一家农业公司的不同人员在不同的侧面加载的 iOS 应用程序和网络技术之间建立了一个相当复杂的关系,以跟踪他们作物中的各种重要事物。
这一切都很顺利,除了一件事是在嘲笑我的经历(或者我不知道如何侦探 Firebase 文档)。以下 .js 代码仅列出在名为“OPnotes”的杂项集合下输入的最后一个条目。(OFnotes 还有另一个属性)。
因此,我试图向网络显示的数据的表示是:
|
OPnotes
| + -- OF-Ave-g9: "OF-Ave g9 ant nest"
| + -- OPA-2A-j5: "OPA-2A j5 excessive sap"
| + -- OPA-SR-k2: "OPA-SR k2 irrigation leak"
|
我已经注释掉了 childkey 变量,因为我无法让它做任何事情。我会想到snapshot.forEach(
将负责进行迭代。
<script>
var noteRef = firebase.database().ref('OPnotes');
noteRef.on('value', function(snapshot) {
// this next line should set up iterations of each child
snapshot.forEach(function(childSnapshot) {
// var childKey = childSnapshot.key;
var note = childSnapshot.val();
document.getElementById("sh owNote").innerHTML = note;
});
});
</script>
当我将来自 GPS 读数和作物名称的足够不同的数据放在一起时,我将所有内容都保持为人类可读的,以便为各种员工制作独特的钥匙,以在他们的脑海中定位问题,这就是为什么部分钥匙在可见文本中重复的原因。我不认为这是这里的问题。
基本上问题是我真的需要制作一个更复杂的模式来阅读吗?
解决方案
确实循环结果中的snapshot.forEach
每个子节点。但是你这样做document.getElementById("sh owNote").innerHTML = note
了,这意味着每次你覆盖之前 HTML 元素中的任何内容。因此,在循环结束时,您最终会得到 HTML 中最后一个节点的值。
您可能正在寻找的是更接近于:
noteRef.on('value', function(snapshot) {
document.getElementById("sh owNote").innerHTML += "";
snapshot.forEach(function(childSnapshot) {
var note = childSnapshot.val();
document.getElementById("sh owNote").innerHTML += note + "<br/>";
});
});
推荐阅读
- javascript - 允许用户输入数字,并在各自的卡中输出?JS、CSS
- list - Racket 中布尔值列表的排列
- python - 如何在不使用循环的情况下提取 numpy 数组的有限值
- java - 如何使用 PDFBox 识别 PDF 分辨率?
- python-3.x - 使用云端访问拒绝签名 URL Python3
- azure-cosmosdb - Cosmos Db - 从数组中搜索值
- javascript - jQuery $.get 没有以正确的顺序返回“每个”?
- android - 为什么 admob 在推送应用更新后停止工作?
- c++ - 如何将 getprocadderss 用于结构或 STL
- python - 如何在 Python 3.8 中为 asyncio.gather 构建任务列表