Java — Firebase создание push уведомлений в чате !


Содержание

Firebase Java Server для отправки push-уведомлений всем устройствам

Я пытаюсь отправить уведомление Push на мое устройство Android с новой службой Firebase. Я зарегистрировал и установил приложение, также я поместил весь код, необходимый для получения уведомления в приложении Android. Через консоль Firebase я могу отправить уведомление в свое приложение, и оно будет получено и показано. Теперь я хочу написать автономный сервер java, чтобы отправить уведомление всем устройствам. Это мой текущий код:

И это результат того, что я возвращаюсь со своих серверов:

К сожалению, просто удаление тега «to» не работает, я получаю код 400, который был возвращен. Я прочитал, что мне нужно зарегистрировать устройство, отправить идентификатор устройства на сервер и сохранить его там, а затем перебрать все зарегистрированные устройства на сервере для отправки сообщения. Нет ли более простого способа, просто отправить сообщение всем устройствам, как в консоли?

Ваша помощь очень ценится, так как я пытался заставить ее работать весь день = (

С уважением, Dustin

Я не считаю, что это возможно. Вместо этого я бы предложил зарегистрировать все устройства в одной и той же теме, а затем вы можете сразу отправить все устройства. Вот справочная документация по этому вопросу:

Отправить тему Сообщения с сервера

Используйте следующий код для отправки push-уведомлений на несколько устройств:

Push-уведомление Firebase для приложения чата

Я занимаюсь разработкой приложения для чата с использованием базы данных Firebase Realtime. Я был в состоянии отправлять и получать сообщения должным образом. Теперь я хочу реализовать уведомление всякий раз, когда получено новое сообщение. То есть, когда какой-либо пользователь отправляет сообщение, push-уведомление запускается на другом пользовательском устройстве, которое имеет такое приложение, как whatsapp. Моя главная задача — как выполнить эту часть в приведенном ниже коде?

1 ответ

Вы можете легко отправлять уведомления из консоли Firebase, см. Документы: https://firebase.google.com/docs/cloud-messaging/

Но вы запрашиваете автоматическое уведомление, это немного сложно, но вы можете сделать это

Использование FireBase облачных функций.

По почтовому запросу на ваш сервер Firebase,

Firebase Push уведомления для чата приложения

Я разрабатываю приложение чата с использованием Firebase в реальном времени базы данных. Я был в состоянии отправлять и получать сообщения правильно. Теперь я хочу, чтобы осуществить уведомление всякий раз, когда новое сообщение received.ie всякий раз, когда любой пользователь отправляет сообщение толчок уведомление вызывает у другого пользовательского устройства, которые имеют это приложение так же, как WhatsApp. Моя главная задача в том, как сделать эту роль в моей приведен ниже код?

Вы можете легко отправлять уведомление от firebase консоли, обратитесь к документации: https://firebase.google.com/docs/cloud-messaging/

Но вы просите своего рода автоматического уведомления, это немного сложнее, но вы можете сделать это,

Часть 1. Push — уведомления для Andro >Опубликовано 27.03.2020 в 13:32.

Это простой прямой подход, касающийся того, как реализовать push-уведомление в Android, а также iOS, используя плагин cordova plugin for fcm для проекта Cordova и Google Firebase FCM в виде облачного сервера обработки сообщений.

Использование FCM в платформе Android

1. Создание проекта Cordova. Сначала необходимо иметь какой-то проект Cordova с добавленной платформой Android:


далее к этому проекту мы добавляем плагин cordova-plugin-fcm командой:

В процессе установки данного плагина система нам выведет ряд ошибок, к примеру, скажет, что у нас отсутствует файл google-services.json:

данный файл мы должны скачать из консоли Google Firebase в процессе создания приложения и находиться он должен в корневой директории проекта Cordova.

2. Создание облачного проекта Firebase. В консоли google firebse console жмем на кнопку «Добавить» и создаем новое облачный проект для Android, iOS и WEB — проектов:

После нажатия на кнопку «Создать проект» следующим шагом является добавление возможности создания облачных уведомлений через Firebase Cloud Messages и для этого необходимо нажать на пункту «Notifications» и далее следующее окно предложит ввести данные приложения для Android или iOS:

На данном этапе нажимаем на Android и заполняем данные и выйдет окно, требующий заполнения уникального идентификатора:

далее жмем на кнопку «Зарегистрировать приложение» и мы попадем на шаг, где нам предлагают скачать вышеупомянутый файл google-services.json:

данный файл скачиваем и кидаем в корень проекта Cordova pushSample/google-service.json.

Далее жмем «Продолжить» и сервис предложит нам добавить некоторый код в файл сборки build.gradle, который находится в корне платформы Android по пути pushSample/platforms/android/build.gradle:

В скрипте сборки плагина по пути pushSample/platforms/android/cordova-plugin-fcm/pushSample-FCMPlugin.gradle :

В некоторых случаях выше приведенный код может выдавать ошибки и несоответствия и все это выйдет в консоль, как например ниже:

Для решения можно написать костыли принудительного исполнения, прописав их в файл pushSample/platforms/android/build.gradle:

3. Пишем первое уведомление. После добавления кода построения сервисов Google облачный проект предложит нам отправить сообщение:

Перед тем, как написать новое сообщение из консоли в клиентские приложения в виде уведомлений необходимо сначала написать клиентский код, который будет их принимать. Для этого в папке скриптов создаем новый файл www/scripts/script.fcm.js, в котором будем писать код, выполняемый после инициализации всех ресурсов Cordova:

Цукерберг рекомендует:  Отзывы о профессии Веб-разработчик

Данный файл подключаем ко всем необходимым страницам нашего проекта Cordova. построим приложение и запустим на эмулятор или на реальное устройство:

И далее и консоли отправляем наше первое уведомление:

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

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

Java — Firebase создание push уведомлений в чате !

2485 просмотра

2 ответа

1325 Репутация автора

В консоли Firebase мы можем установить определенное время и дату, когда наше уведомление будет нажато. Но есть ли способ, который мы можем установить ежедневно? Например, он будет отправлять каждый понедельник, среду и пятницу или каждый день?


Ответы (2)

6 плюса

392 Репутация автора

Push-кампании с уведомлениями Firebase можно отправлять сейчас или позже (по расписанию), но вы не можете настроить повторяющийся шаблон. Это очень молодой продукт, который только на прошлой неделе был запущен Google.

Вероятно, вы могли бы переключиться на Firebase Cloud Messaging , использовать свой HTTP API, а затем построить скрипт cron для автоматического запуска уведомлений в эти дни.

Или переключитесь на более зрелый продукт, такой как Parse Server, Batch.com или что-нибудь еще, поскольку они обычно предоставляют функцию ежедневных / еженедельных / ежемесячных повторяющихся push-уведомлений.

плюса

632 Репутация автора

В FCM теперь доступны повторяющиеся сообщения. Может быть полезно кому-то.

Отправка push-уведомлений в приложение для iOS с помощью облачных сообщений Firebase

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Продолжая нашу серию статей о Firebase, в этом посте мы рассмотрим Firebase Cloud Messaging — или для краткости FCM — Google сервис с малой задержкой и сервис оркестровки уведомлений для мобильных приложений. Пока iPhone существует, push-уведомления играли важную роль в уведомлении пользователей в заранее определенное время о важных событиях, будь то уведомление о сообщении Skype или звонке, прямое сообщение в Twitter или игровые оповещения. Посредством тщательно продуманных сегментированных push-уведомлений маркетологи увеличили вовлеченность приложений и удержание пользователей. Вы можете сделать то же самое, используя FCM для:

  • целевые предопределенные или пользовательские сегменты пользователей, использующие преимущества демографии и поведения пользователей
  • доставлять немедленные или запланированные push-уведомления
  • интегрировать FCM в Google Analytics для обеспечения подробного мониторинга и проведения A/B-тестирования
  • создать полностью погруженное приложение для обмена мгновенными сообщениями

Предполагаемые знания

В этом руководстве предполагается, что у вас есть практические знания по iOS и Swift, а также некоторый базовый опыт работы с CocoaPods. Если вам нужно узнать больше, ознакомьтесь с нашими руководствами по Swift и CocoaPods.

Цели этой статьи

В этой статье вы узнаете все о FCM, так как мы рассмотрим следующие темы:

  • настройка проекта FCM
  • настроим вашу среду для FCM
  • будем получать и обрабатывать сообщения
  • отправим сообщение на ваше устройство
  • обмен сообщениями по темам и группам
  • целевые сегменты и аналитика

Что такое Firebase Cloud Messaging (FCM)?

Вкратце, Firebase Cloud Messaging (или сокращенно FCM) — это кроссплатформенное решение для обмена облачными сообщениями и уведомлениями от Google, позволяющее разработчикам отправлять push-уведомления своим конечным пользователям приложений через Firebase Notification Composer или через набор API, предоставляемый Firebase. FCM поддерживает два типа сообщений: уведомления и сообщения с данными.

Уведомительные сообщения — это явные push-уведомления, которые отображаются на устройстве пользователя для информирования или запроса на участие, такие как уведомление в сообщении Facebook Messenger. Сообщения с данными, напротив, непосредственно обрабатываются приложением в фоновом режиме и могут использоваться для обновления табличного представления без приложения на переднем плане.


Посредством таргетинга сообщений FCM может доставлять сообщения на отдельные устройства, группы устройств или устройства, подписанные на темы. Целевые группы напрямую интегрируются с Firebase Analytics, так что вы можете отслеживать вовлечение и конверсии, создавая целевые сегменты клиентов. Далее мы собираемся пройти процесс настройки проекта Firebase для iOS.

Настройте проект

В этой серии мы собираемся создать простое приложение, которое мало что делает, кроме запуска и получения сообщений от FCM. Давайте начнем с клонирования проекта из GitHub:

Открыв Podfile в корневом каталоге, вы заметили, что мы импортировали необходимые модули Firebase:

Введите следующее, чтобы построить pods:

Откройте рабочее пространство Firebase-FCM.xcworkspace и в браузере перейдите на панель Firebase и создайте новый проект:

Затем нажмите «Добавить Firebase» в ваше приложение iOS, и шаг за шагом пройдите через процесс регистрации вашего приложения в Firebase.

В какой-то момент он просит вас добавить файл GoogleService-info.plist в ваш проект Xcode:

Вы уже добавили библиотеки через CocoaPods, так что вы можете пропустить оставшиеся инструкции и вернуться в консоль Firebase.

В Xcode откройте AppDelegate.swift, и вы увидите, что мы инициализировали проект, импортировав Firebase и добавив FirebaseApp.configure() :

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

Конфигурирование вашей среды для FCM

FCM использует службу Apple Push Notification (APN) для отправки и получения сообщений, поэтому нам нужно включить Push-уведомления через APN. Сначала на портале разработчиков Apple создайте ключ аутентификации.

Создайте ключ аутентификации APNs

Сначала перейдите в Сертификаты> Идентификаторы и профили и выберите Все под Ключами:

Теперь введите описание ключа для ключа авторизации APN, выбрав службу push-уведомлений Apple (APN). Храните этот ключ в надежном месте, так как это разовая загрузка.

Цукерберг рекомендует:  8 полезных сайтов для веб-разработчиков

Затем вам нужно создать идентификатор приложения, чтобы ваше приложение можно было идентифицировать. Выберите Идентификаторы > App IDs в меню навигации и нажмите кнопку +, чтобы добавить новый идентификатор приложения iOS. Введите описание и суффикс идентификатора приложения для вашего приложения в соответствии с тем, что есть в вашем проекте XCode. Убедитесь, что вы также выбрали Push-уведомления в поле службы.

Вернитесь на панель Firebase и в разделе Настройки проекта выберите вкладку Облачные сообщения. Под Аутентификационным ключом APN в конфигурации приложения iOS нажмите кнопку Загрузить. Теперь загрузите ключ авторизации APN, который вы загрузили с портала разработчиков Apple.

Авторизация Push-уведомлений в приложении

В вашем AppDelegate.swift добавьте следующий код:

Здесь мы импортируем UserNotifications , объявляя о нашем намерении реализовать UNUserNotificationCenterDelegate и запрашивая разрешение пользователя на уведомления с помощью UNUserNotificationCenter.current().RequestAuthorization() .

В дополнение к токену APN, который мы сгенерировали ранее, FCM также генерирует токен, который используется для нацеливания на определенные экземпляры приложения устройства через обмен messaging:didReceiveRegistrationToken: . Это извлекается во время запуска приложения, и токен обновляется всякий раз, когда он истекает или каким-то образом становится недействительным.

По-прежнему в нашем файле AppDelegate.swift добавьте следующее под объявлением FirebaseApp.configure() :


Обратите внимание, что мы также добавили MessagingDelegate в наше объявление класса. Токены извлекаются с помощью службы messaging:didReceiveRegistrationToken: и вызываются один раз в начале запуска приложения, а результаты отправляются на сервер приложений. Добавьте следующее в конец вашего метода didFinishLaunchingWithOptions:

Нам нужно явно попросить пользователя принять push-уведомления перед отправкой сообщений. Метод requestAuthorization(options: authOptions) делает именно это. Когда токен обновляется, ваше приложение получает уведомление с помощью следующего метода делегирования сообщений:

Последний метод позволяет вам получать сообщения на переднем плане, напрямую от FCM, чтобы обойти наш прокси-сервер APN. Далее мы работаем над обработкой Push-уведомлений.

Получение и обработка сообщений

Чтобы получать уведомления, нам нужно зарегистрироваться для получения уведомлений. Когда ваше приложение находится в фоновом режиме, ваши уведомления доставляются в системный трей до тех пор, пока ваше приложение не откроется, после чего пакет уведомлений затем передается обратному вызову didReceiveRemoteNotification: в AppDelegate . Давайте реализуем это следующим образом:

Проверка получения токена регистрации Firebase

Создайте и запустите свое приложение, убедившись, что оно запущено на вашем физическом устройстве, поскольку вы не можете получать push-уведомления на симуляторе. Прямо сейчас приложение ничего не делает визуально, но если вы обратите внимание на консоль Xcode, вы должны увидеть, что вы успешно получили идентификатор токена регистрации Firebase:

Теперь мы готовы перейти к последнему этапу, отправляя сообщения в наше приложение.

Отправка сообщения на ваше устройство

На предыдущем шаге мы должны были успешно запустить наше приложение без сообщений об ошибках в нашей консоли. Создайте и снова запустите свое приложение в XCode, но убедитесь, что ваше приложение находится в фоновом режиме, в то время как процесс запуска XCode все еще выполняется, проведя пальцем вверх, чтобы перейти на домашний экран.

Мы собираемся создать сообщение с помощью конструктора уведомлений Firebase, поэтому зайдите туда в браузере и введите образец текста. Убедитесь, что вы выбрали одно устройство для своей цели сообщения.

В мастере создания сообщений вы заметили, что вы также можете настроить таргетинг на другие сегменты и даже запланировать отправку сообщения в будущем. Для этого упражнения мы собираемся отправить сообщение сейчас. Нажмите Опубликовать, чтобы отправить сообщение. Посмотрите на свой телефон, и вы должны увидеть свое сообщение.

Тема и групповые сообщения

В этом учебном пособии вы узнали о том, как получать push-уведомления с использованием FCM, но мы лишь слегка коснулись того, что мы можем сделать с помощью FCM. В нашем примере мы нацелены на одно устройство, вы, скорее всего, нацеливаетесь на устройства, подписывающиеся на определенные группы или которые следят за конкретными темами.

Обмен сообщениями в темах позволяет пользователям подписываться на определенные темы, такие как результаты матчей вашей любимой команды колледжа или обновления погоды в соответствии с интересами вашего пользователя. Пользователи могут подписаться на неограниченное количество тем с FCM, оптимизируя сообщения для пропускной способности, а не задержки. Для получения дополнительной информации о работе с тематическими сообщениями, пожалуйста, обратитесь к разделу «Обмен сообщениями по темам на iOS» в документации Firebase.

Если вы хотите отправлять сообщения на несколько устройств для каждого пользователя, таких как iPhone и iPad пользователя, обмен сообщениями между группами будет более подходящим для вас. Обмен сообщениями между группами устройств позволяет отправлять одно сообщение нескольким экземплярам приложения, работающего на устройствах, принадлежащих группе. (Сообщения группы устройств на iOS), где группа обычно означает одного пользователя с набором связанных устройств, совместно использующих общий ключ уведомления FCM.

Для любого типа обмена сообщениями вместо использования конструктора уведомлений вы должны использовать более автоматизированную и сложную форму запуска сообщений с использованием Firebase Admin SDK.

Целевые сегменты и аналитика

Помимо отправки сообщений по темам и группам, вы также можете тщательно ориентировать сегменты пользователей на основе различных других маркетинговых свойств. То есть вы можете использовать FCM для проведения А/B или других типов экспериментов, чтобы вы могли оценивать и проверять гипотезы и наблюдать ключевые показатели взаимодействия.

A/B-тестирование работает с FCM, поэтому вы можете тестировать различные маркетинговые сообщения, а с помощью Remote Config — тестировать изменения в своем приложении. (Firebase)

Для получения дополнительной информации обратитесь к документации Firebase по Firebase A/B тестированию.

Вы можете скачать полный исходный код этого проекта, клонировав демо-версию приложения push-уведомлений Firebase iOS из нашей учетной записи GitHub.

Заключение


В этом учебном пособии вы узнали о Firebase Cloud Messaging и о том, как вы можете легко вывести свое приложение iOS на новый уровень, используя push-уведомления в качестве средства привлечения пользователей. FCM предоставляет вашему приложению не только способ общения со своими пользователями, но и предоставляет вам эффективный способ применения сложных маркетинговых стратегий для отправки сообщений нужным пользователям в нужное время на основе различных алгоритмов, которые вы можете создать. FCM чрезвычайно прост в реализации, но обеспечивает непревзойденный уровень сложности и расширяемости на рынке.

Цукерберг рекомендует:  Закладки с круглыми углами

Как создать чат на andro >

Пришла такая идея попробовать создать чат под андроид работающий по такому алгоритму:
1. приложение отправляет сообщение на мой сервер.
2. сервер сохраняет сообщение и дает firebase`у команду на уведомление адресата о появлении нового сообщения.
3. firebase отправляет уведомление.
4. приложение адресата получив уведомление отправляет запрос на сервак и получает само сообщение.

Cерверную часть собираюсь писать на php.

Тут возникают такие вопросы, какие именно компоненты firebase надо использовать? Как обозначить конкретного адресата для отправки уведомления? На сколько вообще такой алгоритм имеет право на жизнь? И какие есть подводные камни?

java — firebase — отправлять уведомления всем

Я хочу отправить фоновое уведомление от fcm всем своим пользователям. Это мой код, единственная проблема, с которой я столкнулся, заключается в том, что я должен поставить идентификатор токена. Мне нужно отправить уведомление всем моим пользователям без определения значений токенов

Он работает нормально и успешно отправляет уведомления, но как я могу отправить уведомление всем?

Решение

Похоже, что нет такой функции для отправки уведомлений на все устройства.

Тем не менее, есть решение для вашей проблемы, используя темы. Для этого вам нужно будет подписать всех пользователей на определенную тему во время запуска приложения.

Затем вы можете отправить уведомление в эту тему, чтобы уведомление было отправлено всем пользователям.

Другие решения

Если я получу ваш вопрос.

Вам необходимо подписаться Topic и тогда вам просто нужно использовать эту тему.
Пользователи, которые подписались на него, получат уведомление.

Документы: —

На основе модели публикации / подписки обмен сообщениями по темам FCM позволяет отправлять сообщения на несколько устройств, которые выбрали определенную тему. По мере необходимости вы создаете тематические сообщения, а FCM обеспечивает надежную маршрутизацию и доставку сообщений на нужные устройства.

Есть два способа отправить уведомление нескольким пользователям.

Создайте тему со всеми пользователями в ней и отправьте push-сообщение в эту тему.
Пример: https://firebase.google.com/docs/cloud-messaging/andro >

Отправьте уведомление приложению с идентификатором пакета. Но это отправит уведомление даже не авторизованному пользователю.

Отправка Push уведомлений с сервера Java на устройство Andro >14.08.2020, 14:35. Просмотров 1319. Ответов 8

Отправляю со своего сервера.
Использовал две ссылки, но не работает.
Делаю как тут написано, но пуш не приходит на устройство. В ответ мне код 200 выдаёт.

Может я как-то не так делаю?


14.08.2020, 14:35

Концепция и реализация PUSH-уведомлений
Смысл прост как дважды два: по аналогии с вибером, скайпом и другими мессенеджарами. Приложение.

C++ Qt и java Android отправка SMS
Здравствуйте. Уже пол года мучаю Qt увидел в настройках компиляцию под Android и решил попробовать.

Отправка массива с сервера Java на клиента Java android
Подскажите, пожалуйста, как объявить массив на сервере и затем передать этот массив на экран.

Рассылка push уведомлений
Всем доброго времени суток! =) Не могу разобраться с использованием API для отправки push через.

Android Push Notifications
может кто-нибудь объяснить всю процедуру, как это сделать?

14.08.2020, 16:48 2

Добавлено через 2 минуты
А как вы их на устройстве ловите?

14.08.2020, 17:19 [ТС] 3

Так это тоже самое по сути. Адрес только другой. Пробовал так.

не знаю. этим занимается разработчик Android

Firebase: отправка push-уведомления пользователю на всех устройствах

Я создаю приложение, подобное Instagram. Пользователь загружает сообщение, а другим могут понравиться. Когда людям нравится сообщение, я хочу, чтобы автор сообщения получал push-уведомление с использованием FCM (Firebase Cloud Messaging).

Моя проблема в том, что refreshToken (который генерируется с помощью FirebaseInstanceId.getInstance().getToken(); ) относится к устройству. Поэтому, если один и тот же пользователь входит в приложение с другого устройства, я хочу, чтобы я отправил push-уведомление всем устройствам. Итак, вот мое предлагаемое решение, я хочу знать, правильно ли это сделать:

Каждый раз, когда пользователь входит в устройство, я сохраняю refreshToken в базе данных и когда Я хочу создать push-уведомление, я могу перебрать все эти refreshTokens и отправить push-уведомление всем этим устройствам.

Есть ли лучший способ сделать это?

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

1 ответ

Да, реализация в порядке.

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

На самом деле в этом нет необходимости отправлять идентификатор принудительной регистрации устройства (в вашем случае refreshToken) каждый раз, когда пользователь входит в ваше приложение с устройства. Вам нужно отправлять идентификатор принудительной регистрации (т. Е. RefreshToken) с вашего устройства, только если устройство еще не известно серверу (т. Е. Новое устройство).

Есть ли лучший способ сделать это ?

Я думаю, что нет. Это идеальный способ, который вы реализовали. Однако мы всегда можем подумать о нескольких точках оптимизации, таких как отслеживание того, какие устройства вышли из системы, так что вам больше не нужно отправлять push-уведомление на это устройство. Таким образом, в случае выхода из устройства отправьте еще один недействительный запрос refreshToken на сервер с этого устройства, чтобы оно не получало дальнейших push-уведомлений. Это улучшение по сравнению с текущей реализацией.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих