Я работаю над приложением-флаттером, в котором много запросов к серверу было реализовано на нашем пользовательском сервере, включая вход в систему / регистрацию. Однако мы решили использовать 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 пользователя?