firebase - 如何使用 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;
}
}
提前致谢!
解决方案
我建议将这种逻辑与您的应用程序完全分开。
由于您已经使用 Firestore 来保存数据,因此您还可以使用其他 Firebase 工具来实现您想要的。
要通过电子邮件发送数据,您可以使用 Firebase Cloud Functions。您可以在此处阅读有关此主题的更多信息。
要每天或在特定时间触发一次云功能,您可以使用 Firebase 计划功能。您可以在此处阅读有关此主题的更多信息。
推荐阅读
- java - 如何在 jframe 中使用 bufferedimage 进行图像渲染?
- javascript - htaccess 重写 js/css 文件到子目录
- javascript - 发生错误时不执行 Catch 语句
- javascript - 将 Vue 2 迁移到 Vue 3,typeError: Vue is not a constructor
- c# - MongoDB C# Driver GroupBy 获取相同属性的最新对象。(带聚合)
- java - 发送和接收 Java Midi Sysex 消息
- javascript - 通过将鼠标移到元素上来更改元素的标题
- expss - 为均值比较表添加 p 值 (tab_stat_mean_sd_n)
- html - 在浏览器中以 HTML 格式呈现 Doctype 实体声明
- python - 在使用多个 if 和 for 循环时寻找更优雅和更复杂的解决方案