Цель: отправить уведомление для всех пользовательских устройств.
Описание проблемы: У меня проблема с отправкой уведомления для одного пользователя. После регистрации я сохраняю токен FCM в базе данных, чтобы пользователь мог отправить ему уведомление. Проблема в том, что когда пользователь будет регистрироваться несколько раз - один и тот же токен будет сохранен для более чем одного пользователя.
Пример:
- регистрация пользователя с электронными письмами test@gmail.com и test2@gmail.com
- логин пользователя на test@gmail.com
- отправка уведомления другим пользователем на test@gmail.com
- уведомление будет отправлено на оба аккаунта (test@gmail.com и test2@gmail.com), а не только на test@gmail.com
Так вот мой вопрос - как отправить уведомление для всех устройств, подключенных к пользователю, а не для всех пользователей, подключенных к устройству?
QuerySnapshot ref = await Firestore.instance.collection('users')
.document(_textController.text)
.collection('tokens')
.getDocuments();
ref.documents.forEach((snapshot) async {
http.Response response = await http.post(
'https://fcm.googleapis.com/fcm/send',
headers: <String, String>{
'Content-Type': 'application/json',
'Authorization': 'key=$serverKey',
},
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': snapshot.data['token'],
},
),
);
});
Спасибо за помощь!