Данные JSON для отправки Push-уведомлений всем зарегистрированным устройствам с использованием Firebase

1

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

{ "notification": {
    "title": "Quiz App",
    "text": "Your Quiz has submitted Successfully."
  },
  "to" : "Unique Key"
}

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

  • 0
    Возможный дубликат FCM (Firebase Cloud Messaging), как отправить на все телефоны?
  • 0
    @AL. Боюсь, это не дубликат, братан. Обмен сообщениями на устройстве отличается от обмена сообщениями на основе тем, но да, это еще один обходной путь. Спасибо, что поделился.
Показать ещё 5 комментариев
Теги:
firebase
firebase-cloud-messaging
push-notification

4 ответа

2
Лучший ответ

Если вы ищете параметр полезной нагрузки, чтобы указать, что вы намереваетесь отправить сообщение всем своим пользователям, к сожалению, его не существует.

Обычно при отправке уведомлений нескольким пользователям вы можете использовать параметр registration_ids вместо to. Однако допускается только до 1000 регистрационных токенов. Если вы намереваетесь использовать это, вы можете сделать пакетные запросы по 1000 регистрационных токенов каждый, итерации по всем регистрационным маркерам, которые вы сохранили на своем сервере приложений.

Как уже упоминалось в @looptheloop88, вы можете использовать Firebase Console для отправки сообщения всем пользователям конкретного приложения, но если вы планируете отправлять его через свой собственный сервер приложений, наиболее удобный способ вы можете сделать, это использовать Тема сообщений. В соответствии с ответом в возможном дублирующем сообщении я прокомментировал @DiegoGiorgini:

Отправка сообщения всем телефонам, как то, что вы делаете с веб-консоли Firebase, возможно только из веб-консоли. Если вам нужна эта функция из API, вы можете отправить запрос функции: https://firebase.google.com/support/contact/bugs-features/

Другая возможность заключается в том, чтобы все клиенты регистрировались в определенной теме через FirebaseMessaging.getInstance().subscribeToTopic(topicName)

Таким образом вы можете отправить сообщение по всему тегу без сбора идентификаторов регистрации вручную.

Однако имейте в виду, что Диагностика сообщений, отправленных в Темы, не поддерживается.

1

У меня была такая же потребность, и я решил это, установив to в /topics/all и restricted_package_name в имя моего пакета:

{
    "to": "/topics/all",
    "restricted_package_name": "<PACKAGE_NAME>",
    "notification": {
        "title": "<TITLE>",
        "body": "<BODY>",
        "click_action": "FCM_PLUGIN_ACTIVITY"
    }
}

Каждое отправляемое сообщение принимается мобильными приложениями без необходимости программной подписки на тему.

0

У нас есть микросервис, который создает push-данные, когда он получает событие. Наш милый пушер не имеет представления о клиентских устройствах и не имеет никакого хранилища. Когда в базовых системах происходит новое событие, оно получает уведомление. Затем он отправляет уведомления на мобильные платформы. Наш толкатель отправляет запрос HTPP в FCM. Вы можете узнать больше о реализации FCM на сервере здесь. Наша основная структура запросов выглядит следующим образом:

https://fcm.googleapis.com/fcm/send
    Content-Type:application/json
    Authorization:key=SERVER_API_KEY
    {

      "condition": "'condition1' in topics && 'condition2' in topics",
      "notification": {
          "category": "notification_category",
          "title_loc_key": "notification_title",
          "body_loc_key": "notification_body",
          "badge": 1
      },
      "data": {
        "data_type": "notification_data_type",
        "data_id": "111111",
        "data_detail": "FOO",
        "data_detail_body": "BAR"
      }
    }
0

С помощью Сообщения группы Firebase Group вы можете отправить одно сообщение нескольким экземплярам приложения, работающего на устройствах, принадлежащих к группе. Как правило, "группа" относится к набору различных устройств, принадлежащих одному пользователю. Все устройства в группе имеют общий ключ уведомления, который является маркером, который использует FCM для рассылки сообщений всем устройствам в группе.

Шаги и рекомендации вместе с полезной нагрузкой JSON приведены в документации Firebase. Пожалуйста, проверьте это.

С другой стороны, вы можете отправлять сообщения на устройства, зарегистрированные в приложении, через Firebase Notification console. Вам просто нужно составить новое сообщение и выбрать приложение в разделе "Цель".

  • 0
    Привет @ looptheloop88 спасибо за ответ на мой вопрос. На самом деле, я уже сделал это с консоли Firebase, но если мне нужно отправить его с моего веб-сервера, мне нужно отправить JSON с моего сервера на сервер Firebase. Команда Firebase документировала формат JSON для отправки сообщений на определенное устройство, но не для отправки на все устройства или более чем на одно выбранное устройство.
  • 0
    @ShravanJain - пожалуйста, проверьте ссылку сообщения устройства.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню