#firebase #csv #flutter #dart #google-cloud-firestore
#firebase #csv #flutter #dart #google-облако-firestore
Вопрос:
По сути, я пытаюсь сгенерировать ежедневный CSV-файл из моих данных firestore, поскольку он представляет заказы клиентов. Этот 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;
}
}
Заранее спасибо!
Комментарии:
1. Вы сможете сгенерировать
csv
файл в приложении, но для его автоматической генерации и отправки по электронной почте вам придется использовать API или что-то вроде облачных функций Firebase .
Ответ №1:
Я бы предложил полностью отделить этот вид логики от вашего приложения.
Поскольку вы уже используете Firestore для сохранения своих данных, вы также можете использовать другие инструменты firebase для достижения желаемого.
Для отправки данных по электронной почте вы можете использовать облачные функции Firebase. Вы можете прочитать больше об этой теме здесь.
Для запуска облачной функции один раз в день или в определенное время вы можете использовать функции расписания Firebase. Вы можете прочитать больше об этой теме здесь.
Комментарии:
1. Спасибо за вашу помощь! попробую это
2. Хорошо. Если это не тот путь, которым вы хотите пойти, пожалуйста, укажите в своем вопросе, почему это не так. В противном случае не забудьте пометить ответ как принятый 🙂
3. да, конечно, но позвольте мне внимательно прочитать это, чтобы знать, соответствует ли это моим потребностям, если да, я обязательно приму ваш ответ 😉