Как отправлять уведомления pu sh в приложении Flutter android? - PullRequest
0 голосов
/ 31 марта 2020

Я разработал флаттер android приложение . и моя база данных MongoDB . Я использую Node.js API , чтобы подключить мое приложение для флаттера к MongoDB. Я хочу отправить уведомления pu sh, когда новая запись данных поступает в MongoDB . Как я могу это сделать?

1 Ответ

0 голосов
/ 10 апреля 2020

Самый простой способ - использовать Firebase Cloud Messaging. Тем более, что Google не поддерживает GCM, который ранее использовался для Android. Также облачные сообщения Firebase бесплатны и могут использоваться как для iOS, так и для Android. Для службы Apple APN также потребуется настройка и платная учетная запись разработчика.

  1. Создайте проект Firebase, если вы этого еще не сделали, и включите облачный обмен сообщениями.

  2. Чтобы настроить сервер Node.js таким образом, чтобы он мог отправлять уведомления pu sh на устройства android и IOS. Нажмите «Обзор проекта», «Настройки» и «Учетные записи служб» и следуйте инструкциям по созданию закрытого ключа для вашего проекта и следуйте инструкциям по настройке. Также npm установите "firebase-admin".

  3. После настройки firebase обратитесь к этим документам, чтобы узнать, как отправлять сообщения. https://firebase.google.com/docs/cloud-messaging/send-message

Существует несколько способов отправки сообщений. Вы можете отправлять сообщения напрямую.

с этим кодом

// This registration token comes from the client FCM SDKs.
var registrationToken = 'YOUR_REGISTRATION_TOKEN';

var message = {
  data: {
    score: '850',
    time: '2:45'
  },
  token: registrationToken
};

// Send a message to the device corresponding to the provided
// registration token.
admin.messaging().send(message)
  .then((response) => {
    // Response is a message ID string.
    console.log('Successfully sent message:', response);
  })
  .catch((error) => {
    console.log('Error sending message:', error);
  });

Вы также можете создавать темы для устройств, на которые можно подписаться, если вы отправляете массовые уведомления. Больше примеров снова в документах. Теперь, если вам интересно, что такое маркер, это следующий шаг.

Токен исходит от уникального устройства, которое подключается к вашей платформе. Вы можете получить токен, установив Firebase Messaging sdk из https://pub.dev/packages/firebase_messaging и следуя инструкциям, чтобы добавить необходимые зависимости в ваш pubse c .yaml и правильно настроить манифест Android и iOS файлы для изменений.

Этот пакет предоставит вам способы перехвата вашего общения и получения уведомлений, отправленных вами с вашего Node.JS сервера.

Вот пример захватить токен с вашего устройства на веб-интерфейс в флаттер.

final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
  bool _initialized = false;



     Future<void> init() async {
        if (!_initialized) {
          // For iOS request permission first.
          _firebaseMessaging.requestNotificationPermissions();
          _firebaseMessaging.configure(onMessage: (Map<String, dynamic> `enter        code here`message) {
    print('onMessage: $message');
    Platform.isAndroid
        ? showNotification(message['notification'])
        : showNotification(message['aps']['alert']);
    return;
  }, onResume: (Map<String, dynamic> message) {
    print('onResume: $message');
    return;
  }, onLaunch: (Map<String, dynamic> message) {
    print('onLaunch: $message');
    return;
  });

      // For testing purposes print the Firebase Messaging token
      String token = await _firebaseMessaging.getToken();
      print("FirebaseMessaging token: $token");

      _initialized = true;
    }
  }

В этот момент вы, скорее всего, сохранили бы токен в своей базе данных MongoDB и связали бы токен с вашим пользователем и указанным c устройством. Конечно, вам также необходимо установить ядро ​​firebase и Flutter и выполнить все необходимые настройки.

Вы по-прежнему можете поддерживать базу данных API NodeJS и базу данных MongoDB и использовать бесплатную службу облачных сообщений. pu sh ваши уведомления для вашего сервера на ваше устройство.

...