WedX - журнал о программировании и компьютерных науках

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

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

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

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


  • Возможный дубликат FCM (Firebase Cloud Messaging) как отправить на все телефоны? 26.09.2016
  • @АЛ. Боюсь, это не дубликат, братан. Обмен сообщениями с устройства отличается от обмена сообщениями на основе темы, но да, это еще один обходной путь. Спасибо, что поделился. 26.09.2016
  • @ looptheloop88 Looptheloop88 Это не полный дубликат, однако ответ в этом посте в значительной степени отвечает на этот. Хотя групповые сообщения устройств — это способ отправки на несколько устройств, его вариант использования в основном отличается. Это не очень удобный способ использовать его для отправки всем пользователям, но его можно использовать для сегментов пользователей. 26.09.2016
  • Прошу не согласиться. Оба являются удобными способами отправки сообщений и требуют дополнительной работы. Это почти то же самое. Если приложение уже находится в разработке и разработчик не хочет добавлять дополнительные коды для подписки в тему, ему все равно необходимо добавить регистрационные идентификаторы в тему, как описано в этой документации developers.google.com/instance-id/reference/ 26.09.2016
  • @looptheloop88 Да. Я не говорю, что он не может его использовать. Просто обмен сообщениями группы устройств обычно не используется для этого варианта использования, как вы упомянули в своем ответе. Обычно группа относится к набору различных устройств, принадлежащих одному пользователю. С точки зрения варианта использования, тематические сообщения — это то, что вам нужно. 26.09.2016
  • Эй, ребята, спасибо, что помогли мне. мне нужен только формат JSON, с помощью которого я могу отправить запрос на несколько устройств. Остальные вещи у меня есть. 26.09.2016
  • Как и другие предположили, обмен сообщениями в теме, по-видимому, вам подходит, поэтому значение to будет следующим: to: /topics/‹название темы› остальное будет таким же 28.09.2016

Ответы:


1

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

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

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

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

Еще одна возможность – зарегистрировать всех клиентов в определенной теме через FirebaseMessaging.getInstance().subscribeToTopic(topicName).

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

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

26.09.2016

2

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

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

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

26.02.2018

3

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

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

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

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

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    © 2024 wedx.ru, WedX - журнал о программировании и компьютерных науках
    Для любых предложений по сайту: [email protected]