You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Firebase Firestore获取数组并将其输出到HTML表格(提取reserved_items数组中对象的Title元素)

解决方法:提取reserved_items里的Title并正确展示

嘿,我一眼就瞅出问题所在啦!你现在的代码直接把整个reserved_items数组塞进HTML里了——浏览器遇到数组对象时,只会调用它默认的toString()方法,所以页面上肯定显示的是[object Object],[object Object]这类奇怪的内容,完全不是你想要的每个Title的效果。

核心问题

data.reserved_items是一个包含多个对象的数组,你得遍历这个数组,把每个对象里的Title属性单独提取出来,再转换成用户能看懂的HTML内容。

修改后的代码

把你原来生成row的那段代码替换成下面的逻辑就行,我还给你加了空数组的判断,避免显示空白:

let query; 
if (lastReservedBook != null) { 
  query = db.collection("users").where("uid", "==", uid).startAfter(lastReservedBook) 
} else { 
  query = db.collection("users").where("uid", "==", uid); 
} 
query.limit(100).get().then(querySnapshot=>{ 
  lastReservedBook = querySnapshot.docs[querySnapshot.docs.length - 1]; 
  querySnapshot.forEach(doc=>{ 
    console.log(doc.data()) 
    let data = doc.data(); 

    // 遍历reserved_items,提取每个Title,用换行分隔展示
    const reservedTitles = data.reserved_items && data.reserved_items.length > 0 
      ? data.reserved_items.map(item => item.Title).join('<br>')
      : 'No reserved items';

    // 如果想用列表展示,就换成下面这行注释里的代码
    // const reservedTitles = data.reserved_items && data.reserved_items.length > 0 
    //   ? `<ul>${data.reserved_items.map(item => `<li>${item.Title}</li>`).join('')}</ul>`
    //   : 'No reserved items';

    let row = `<tr> <td><a onclick="barcode=${data.Barcode}; myFunction(this)">${reservedTitles}</a></td> </tr>`; 
    let table = document.getElementById('myTable') 
    table.innerHTML += row 
    document.getElementById("loader").style.display = "none" 
  }) 
}) 
.catch(err=>{ 
  console.log(`Error: ${err}`); 
});

为什么这么改?

  • 用map()遍历reserved_items数组,把每个对象的Title属性提取出来,变成一个纯字符串数组
  • 用join('<br>')把字符串数组转换成用换行分隔的HTML文本,或者用<ul>/<li>做成列表,更美观
  • 加了data.reserved_items && data.reserved_items.length > 0的判断,防止数组为空或者不存在时出现错误

这样修改后,页面上就能正确显示每个reserved item的Title啦!

内容的提问来源于stack exchange,提问作者randomUser786

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 10:32:31