#firebase #flutter #firebase-realtime-database #notifications
# #firebase #flutter #firebase-база данных в реальном времени #уведомления
Вопрос:
Как я могу запланировать запуск уведомления о флаттере с помощью Firebase в фоновом режиме, даже если мобильный телефон выключен.
Ответ №1:
Обязательно ознакомьтесь с Firebase cloud messaging, если вы хотите отправлять уведомления в маркетинговых целях. Если вы хотите хранить уведомления локально, посмотрите это видео: https://www.youtube.com/watch?v=KlgVI4dQC4E
Ответ №2:
Существует несколько вариантов для этой задачи в зависимости от ваших конкретных требований к планированию.
- Запланируйте локальное уведомление, которое, например, запускается самими пользователями (например, некоторым напоминанием или таймером). В этом случае плагин Flutter local notifications делает свое дело.
Эти параметры используют службу обмена сообщениями Firebase cloud, для настройки следуйте этому руководству:
- Для планирования уведомлений время от времени (например, в маркетинговых целях) вкладка облачных сообщений в Firebase предлагает пользовательский интерфейс для планирования уведомлений.
- Запланируйте уведомления, повторяющиеся с фиксированным интервалом, с помощью облачных функций. Это можно сделать, используя функциональность планирования, подобную cronjob.
- Запланируйте уведомления, начиная с определенного момента времени (с задержкой), используя облачные функции в сочетании с облачными задачами, как описано здесь .
- Здесь описан более сложный способ реализации задач, но я бы не рекомендовал его, если вам нужно элегантное решение.
В конце концов, планирование уведомлений сводится к реализации механизма планирования для облачных функций.
Ответ №3:
TLDR: Вы можете использовать пакет firebase_notification_scheduler для планирования уведомлений в Flutter.
Этот плагин использует сервис Rapid API. Вам необходимо зарегистрироваться для быстрого API планировщика уведомлений Firebase и получить ключ API отсюда. Затем создайте свой ключ аутентификации отсюда для работы с пакетом
Инициализация пакета
final FirebaseNotificationScheduler firebaseNotificationScheduler =
FirebaseNotificationScheduler(
authenticationKey: <YOUR-RAPID-API-KEY> ,
rapidApiKey: <YOUR-AUTHENTICATION-KEY>
);
Планирование уведомления
//Schedules a notification to the topic 'any' for next minute
final String _payload = {
"to": "/topics/any",
"notification": {
"title": "Title of Your Notification",
"body": "Body of Your Notification"
},
"data": {"key_1": "Value for key_1", "key_2": "Value for key_2"}
}.toString();
final DateTime _now = DateTime.now().toUtc();
final DateTime _dateTimeInUtc = _now.add(const Duration(minutes: 1));
await firebaseNotificationScheduler.scheduleNotification(
payload: _payload, dateTimeInUtc: _dateTimeInUtc);