Ionic: возможно ли задержать входящее push-уведомление FCM на моем устройстве до определенного времени - PullRequest
0 голосов
/ 30 мая 2018

Так что я использую Firebase для своего проекта.Что делает, так это то, что каждый раз, когда новая запись добавляется в определенную коллекцию в Firestore, моя функция Firebase будет запускаться, таким образом отправляя push-уведомление на устройства пользователей, которые подписываются на определенную тему.

Вот код, который я использовал для функции Firebase:

exports.sendNotifications = functions.firestore
 .document('notifications/{sessionId}').onCreate(async event => {
  const newValue = event.data();

 // Gets data from the new notification record in Firestore.
 const topicId = newValue.topicId;
 const themeId = newValue.themeId;
 const colorId = newValue.colorId;
 let lable = newValue.lable;
 let header = newValue.header;

 // Limit the number of characters for push notifications
 if(header.length >= 50){
  header = header.substring(0,47) + "...";
 } if(lable.length >= 100){
  lable = lable.substring(0,97) + "...";
 }

 // Set the message for the notification.
 const payload = {
  notification: {
   title: header,
   body: lable,
  }
 }
 let options = {
  priority: 'high'
 };

 // Sends the notification to the users subscribed to the said topic
 return admin.messaging().sendToTopic(topicId, payload, options)
});

Поскольку функция запускает и отправляет push-уведомления всем моим пользователям, подписавшимся на тему одновременно.Возможно ли, чтобы устройство (принимающая сторона) не показывало уведомление, отправленное моей функцией, до наступления определенного времени?

Причина, по которой пользователи моего приложения Ionic должны выбрать, в какое время дня они будутполучение push-уведомлений из облака.

Мне известно, что в консоли Firebase вы можете отправлять уведомления вручную с помощью формы и устанавливать время и дату отправки уведомления, но это не работает наМоя поддержка, поскольку мои пользователи не установили одинаковое время и дату для показа уведомлений.

1 Ответ

0 голосов
/ 30 мая 2018

В Firebase Cloud Messaging отсутствует API "доставить сообщение в это время".См. FCM. Расписание доставки или время push-уведомления.

. Есть два способа достижения вашей цели:

  1. . Вызывайте FCM только тогда, когда вы хотите, чтобы сообщение былодоставлен.Для этого вам потребуется создать облачную функцию, которая запускается с интервалом , а затем при вызове доставляет только сообщения за этот интервал.
  2. Доставить сообщение как сообщение данных, котороеваше приложение обрабатывает.А затем удерживайте сообщение на клиенте, пока оно не будет готово для отображения пользователю.Подробнее об этом см. В документации Android по созданию уведомления .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...