Firebase 如何使用dart和Flatter从clould firestore数据创建每日csv文件?

Firebase 如何使用dart和Flatter从clould firestore数据创建每日csv文件?,firebase,csv,flutter,dart,google-cloud-firestore,Firebase,Csv,Flutter,Dart,Google Cloud Firestore,我基本上是试图从firestore数据生成一个每日csv文件,因为它代表客户的订单。这个csv文件将不会在应用程序中使用,相反,我想获得一个应该在特定时间发送的每日邮件,其中包含csv文件及其数据(订单)。有哪些可能的方法可以做到这一点? 我正在使用此方法读取应用程序中的数据 Future<void> fetchOrders(String userId) async { try { final response = await ordersCollection

我基本上是试图从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;
    }
  }
Future fetchOrders(字符串userId)异步{
试一试{
最终响应=等待订单收集
.document(userId)
.collection('用户订单')
.getDocuments();
列表加载顺序=[];
最终查询快照=response.documents;
querySnapshot.forEach(
(订单)=>loadedOrders.add(
命令(
id:order['id'],
总价:订单['totalPrice'],
orderedBooks:(订单['orderedBooks']作为列表)
.地图(
(cb)=>CartItem(
id:cb['id'],
标题:cb[“标题”],
数量:cb[“数量”],
价格:cb[‘价格’],
),
)
.toList(),
date:DateTime.parse(order['date']),
电话号码:订单['phoneNo'],
建筑:订单[“建筑”],
道路:秩序[“道路”],
块:订单['block'],
区域:订单['area'],
注:订单['notes'],
),
),
);
_orders=loadedOrders.reversed.toList();
notifyListeners();
}捕获(e){
投掷e;
}
}

提前谢谢

我建议将这种逻辑与应用程序完全分离

由于您已经使用Firestore来保存数据,您还可以使用其他firebase工具来实现所需的功能

要通过电子邮件发送数据,您可以使用Firebase云功能


为了每天或在特定时间触发一次云功能,您可以使用Firebase调度功能

我建议将这种逻辑与应用程序完全分离

由于您已经使用Firestore来保存数据,您还可以使用其他firebase工具来实现所需的功能

要通过电子邮件发送数据,您可以使用Firebase云功能


为了每天或在特定时间触发一次云功能,您可以使用Firebase调度功能

您可以在应用程序中生成
csv
文件,但要自动生成并通过电子邮件发送,您必须使用API或类似的工具。您可以在应用程序中生成
csv
文件,但是要自动生成并通过电子邮件发送,您必须使用API或类似的工具。谢谢您的帮助!我会试试的,好的。如果这不是你想要的方式,请在你的问题中说明为什么不是。否则别忘了将答案标记为已接受:)是的,当然,但让我仔细阅读,看看它是否符合我的需要,如果是,我肯定会接受你的答案;)谢谢你的帮助!我会试试的,好的。如果这不是你想要的方式,请在你的问题中说明为什么不是。否则别忘了将答案标记为已接受:)是的,当然,但让我仔细阅读,看看它是否符合我的需要,如果是,我肯定会接受你的答案;)