首页 > 解决方案 > 如何使用 dart 和颤振从 cloud firestore 数据创建每日 csv 文件?

问题描述

我基本上是在尝试从我的 Firestore 数据中生成一个每日 csv 文件,因为它代表客户的订单。此 csv 文件不会在应用程序中使用,相反,我想获取应在特定时间发送的每日邮件,并包含 csv 文件及其数据(订单)。这样做的可能方法是什么?我正在使用此方法在我的应用程序中读取数据

 Future<void> fetchOrders(String userId) async {
    try {
      final response = await ordersCollection
          .document(userId)
          .collection('user_orders')
          .getDocuments();
      List<Order> loadedOrders = [];
      final querySnapshot = response.documents;

      querySnapshot.forEach(
        (order) => loadedOrders.add(
          Order(
            id: order['id'],
            totalPrice: order['totalPrice'],
            orderedBooks: (order['orderedBooks'] as List<dynamic>)
                .map(
                  (cb) => CartItem(
                    id: cb['id'],
                    title: cb['title'],
                    quantity: cb['quantity'],
                    price: cb['price'],
                  ),
                )
                .toList(),
            date: DateTime.parse(order['date']),
            phoneNo: order['phoneNo'],
            building: order['building'],
            road: order['road'],
            block: order['block'],
            area: order['area'],
            notes: order['notes'],
          ),
        ),
      );
      _orders = loadedOrders.reversed.toList();
      notifyListeners();
    } catch (e) {
      throw e;
    }
  }

提前致谢!

标签: firebasecsvflutterdartgoogle-cloud-firestore

解决方案


我建议将这种逻辑与您的应用程序完全分开。

由于您已经使用 Firestore 来保存数据,因此您还可以使用其他 Firebase 工具来实现您想要的。

要通过电子邮件发送数据,您可以使用 Firebase Cloud Functions。您可以在此处阅读有关此主题的更多信息

要每天或在特定时间触发一次云功能,您可以使用 Firebase 计划功能。您可以在此处阅读有关此主题的更多信息


推荐阅读