如何读取Real Time Database子节点中的数组数据并正确获取对应字段值
读取子节点数组数据的解决方法
返回undefined的核心原因是cart节点存储的是数组类型,而非直接携带amount、image等属性的对象,需要先遍历cart数组的子元素才能读取到目标字段。
正确实现代码
var leadsRef = database.ref('items-ordered'); leadsRef.on('value', function(snapshot) { snapshot.forEach(childSnapshot => { // 读取cart数组,兼容空值场景避免报错 const cartArr = childSnapshot.val().cart || []; // 遍历cart数组的每一项获取目标字段 cartArr.forEach(item => { const amount = item.amount; const image = item.image; const price = item.price; const title = item.title; // 此处可替换为你自身的业务逻辑 console.log(amount, image, price, title); }) }); });
可选补充
如果你需要获取数组中指定位置的元素,可直接通过索引取值,例如获取cart数组中第一个元素的amount字段:
// 索引从0开始计数 const firstAmount = cartArr[0].amount;
内容的提问来源于stack exchange,提问作者Ali Alsaggaf
相关产品推荐
相关产品推荐

