Уведомление Firebase Messaging для указанного устройства c во флаттере - PullRequest
0 голосов
/ 15 марта 2020

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

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

// Replace with server token from firebase console settings.
final String serverToken = '<Server-Token>';
final FirebaseMessaging firebaseMessaging = FirebaseMessaging();

Future<Map<String, dynamic>> sendAndRetrieveMessage() async {
  await firebaseMessaging.requestNotificationPermissions(
    const IosNotificationSettings(sound: true, badge: true, alert: true, provisional: false),
  );

  await http.post(
    'https://fcm.googleapis.com/fcm/send',
     headers: <String, String>{
       'Content-Type': 'application/json',
       'Authorization': 'key=$serverToken',
     },
     body: jsonEncode(
     <String, dynamic>{
       'notification': <String, dynamic>{
         'body': 'this is a body',
         'title': 'this is a title'
       },
       'priority': 'high',
       'data': <String, dynamic>{
         'click_action': 'FLUTTER_NOTIFICATION_CLICK',
         'id': '1',
         'status': 'done'
       },
       'to': await firebaseMessaging.getToken(),
     },
    ),
  );

Это документированный способ отправки сообщения внутри флаттера. Тем не менее, это будет отправлять уведомления всем пользователям, а не одному пользователю. Итак, как мне настроить таргетинг на конкретного c пользователя?

...