Flatter: как интегрировать облачные сообщения Firebase с ChatApp - PullRequest
0 голосов
/ 29 октября 2018

На самом деле я работаю над приложением чата, сообщения хранятся в Firestore, я хочу, чтобы получатель сообщения получал уведомление при отправке сообщения отправителем. Я знаю, что это единственный способ добиться этого - через Firebase Cloud Messaging, но я не знаю, как это сделать.

Как мне это сделать?

NB. Я новичок во Флаттере. Заранее спасибо.

1 Ответ

0 голосов
/ 29 октября 2018

FCM - это один способ, но это не единственный способ - тем не менее, я думаю, что это хороший способ! :)

Взгляните на плагин firebase_messaging.

Я полагаю, что самый простой способ сделать это - заставить ваше приложение чата работать независимо от FCM (как вы, вероятно, уже делаете), что означает, что сообщения сохраняются в firestore, и вы не используете FCM для передачи сообщений.

Затем вы можете настроить триггер Firestore в облачной функции для автоматической отправки уведомлений клиентам. Вы должны настроить прослушиватель сообщений, и, когда они будут добавлены в хранилище, облачная функция будет публиковать уведомления.

В приложении вы будете показывать уведомления только тогда, когда приложение не на переднем плане. Обработка onResume и onLaunch, чтобы указать приложению правильный разговор.

В облачной функции, которая обрабатывает триггер Firestore, клиенты могут быть обнаружены по их идентификаторам токенов, или вы можете заставить клиентов подписаться на определенные темы (например, идентификатор комнаты чата), и триггер / функция будет отправьте им уведомление.

Использование токенов намного сложнее, так как вам нужно будет определить идентификатор токена на всех клиентах, сохранить их в firestore как часть пользователя и держать их в курсе, так как они меняются со временем. А затем для отправки вам нужно будет отправить отдельное уведомление каждому tokenID.

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

Извините, если это очень поверхностное объяснение, но на самом деле это не очень простая тема. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...