开发者问题收集

如何添加地图来获取firestore中的数据?

2021-04-04
38

这是我的订单集合,如何在顺序数组中显示所有数据?就像我如何映射它,以及如何还能显示文档ID?

“在此处输入图像描述”

这是我的代码,用于获取数据中的数据firestore:

591343567
1个回答

我不太确定您指的是哪个 documentID 。是每个文档的 order 数组元素中的 documentID 还是屏幕截图中显示的每个订单文档的文档 ID?

下面将循环遍历 orders 集合中的所有文档,然后,对于每个文档,它将循环遍历每个 orderItemorderItems 数组的每个元素)。您可以根据自己的确切需求进行调整。

  firestore
    .collection('orders')
    .get()
    .then((snapshot) => {
      const orders = [];
      snapshot.forEach((doc) => {

        // Update following your comment
        // If you want to get the ID of the order document, do as follows
        const orderDocID = doc.id;            

        const data = doc.data();
        data.order.orderItems.forEach((item) => {
          orders.push(item.documentID);
        });
      });
      this.setState({ orders: orders });
    });

如果您想向订单项目添加更多数据(根据您的最后一条评论),请执行以下操作:

  firestore
    .collection('orders')
    .get()
    .then((snapshot) => {
      const orders = [];
      snapshot.forEach((doc) => {
        const orderDocID = doc.id;            
        const data = doc.data();
        data.order.orderItems.forEach((item) => {
          const orderObj = {
              documentID: item.documentID,
              productImg: item.productImg,
              productName: item.productName,
          }
          orders.push(orderObj);
        });
      });
      this.setState({ orders: orders });
    });
Renaud Tarnec
2021-04-04