Как отправлять push-уведомления Firebase с самого устройства?

Привет, мне нужна помощь для моего приложения для Android. Я работаю с Push-уведомлениями Firebase и, к сожалению, нашел только один способ отправки push-уведомлений — с самого сайта.

Мне нравится создавать функцию, в которую вы можете вводить заголовок и содержимое для отправки push-уведомлений всем пользователям моего приложения.

Цель: экран администратора. Введите заголовок: это текст редактирования с заголовком. Введите содержимое: это текст редактирования с кнопкой «Отправить». Это отправит уведомление всем пользователям приложения.

Есть ли способ сделать это? Благодарю вас!


person Ben Behor    schedule 09.03.2020    source источник
comment
Нет безопасного способа отправлять сообщения на устройства только с помощью FCM с самого устройства. Для отправки сообщения на устройству необходимо указать ключ сервера FCM. Как следует из названия, этот ключ следует использовать только в доверенной среде, такой как ваш компьютер для разработки, сервер, которым вы управляете, или облачные функции. Типичный поток заключается в том, что ваше приложение вызывает облачную функцию или записывает в базу данных, которая запускает облачную функцию. Затем облачная функция проверяет, в порядке ли содержимое, и вызывает API FCM для отправки сообщения.   -  person Frank van Puffelen    schedule 09.03.2020
comment
@FrankvanPuffelen, почему тогда для него нет безопасного API? Использование облачных функций только для этого кажется излишним...   -  person Pavlo Zin    schedule 09.03.2020
comment
Если вы хотите, чтобы эта функция была добавлена ​​(я определенно хотел бы ее увидеть), лучшее, что вы можете сделать, это подать запрос на функцию.   -  person Frank van Puffelen    schedule 09.03.2020


Ответы (1)


Вы можете отправить push-уведомление с устройства с помощью POST-запроса на этот URL:

https://fcm.googleapis.com/fcm/send

Вам нужно будет предоставить следующие заголовки:

Authorization: key="Firebase server key"
Content-Type: application/json

И тело запроса с уведомлением и другой дополнительной информацией:

{
  "to": "/topics/topic_name",
  "data": {
    "title": "Notification title",
     "message": "Notification message",
     "key1" : "value1",
     "key2" : "value2" //additional data you want to pass
  }
}

Дополнительную информацию можно найти в эту статью на Medium.

person Pavlo Zin    schedule 09.03.2020
comment
Выполнение этого с самого устройства означает, что вы включаете ключ сервера FCM в приложение, которое вы отправляете своим пользователям. Это угроза безопасности, поскольку злоумышленник, получивший ваше приложение, теперь может получить этот ключ и использовать его для отправки любого сообщения всем пользователям приложения. - person Frank van Puffelen; 09.03.2020