Как составить график push-уведомлений для реагирования на нативную выставку? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь отправить push-уведомления пользователю в назначенное время.Скажем, они установили дату для события и хотят получить уведомление за 30 минут до этого, то есть когда я хотел бы отправить им уведомление.Я использую Firebase в качестве своего бэкэнда, и проект создается с помощью expo.

Мне интересно, как бы я использовал систему уведомлений expo, если я использую облачные сообщения Firebase, потому что там говорится, что мне нужно отдельное разрешение от FireBase (я ужеиметь токен для каждого пользователя).Я изучил узел cron / schedule, а также реагирующее собственное push-уведомление, но я не уверен, какое из них будет лучшим решением и где я буду развертывать решение (например, запускать облачную функцию).

Я предполагаю, что яНужна функция какого-то типа, которая принимает токен, тело сообщения, заголовок и дату, а затем устанавливает его для планирования на сервере или локально.И тогда эта функция будет вызвана, когда они нажмут кнопку, чтобы получить уведомление.Они также могут изменить дату события, поэтому, если пользователь сделал это, ему нужно было бы изменить дату.

Любой совет будет принят с благодарностью, так как я изучал это в течение нескольких дней и до сих пор не уверен в том, что лучшеподход.

1 Ответ

1 голос
/ 24 сентября 2019

Один из возможных подходов:

  1. В вашем бэкэнде запланируйте задание cron, которое выполняется каждую минуту (или каждые 15 секунд), и проверяйте по базе данных, какие события имеют время начала в течение следующих 30 минут..

  2. Получив events, найдите пользователей, зарегистрированных для этих событий, и соберите их идентификаторы.

  3. Как вы упомянуличто вы уже сохранили токены, поэтому я предполагаю, что эти токены существуют в некоторой таблице с идентификатором пользователя.(например, отображение user-id и tokens).Просмотрите эту таблицу, чтобы получить токены этих пользователей.

  4. Подготовьте уведомление payload и позвоните firebase, чтобы отправить уведомление на токен.Например, на данный момент вы можете вызвать функцию sendToDevice() из Firebase SDK: firebase.messaging().sendToDevice(tokens, payload);

Теперь вы можете реализовать эти шаги в своем бэкэнде (например,Nodejs) или вы можете развернуть облачную функцию для этого и настроить планирование для этой облачной функции.

Дайте мне знать, если вам нужна дополнительная помощь!

...