Мне нужны некоторые пояснения.Один-на-один Android-чат с использованием Firebase
Я использую базу данных реального времени Firebase.
Теперь я должен реализовать чат реального времени между двумя устройствами Android. Мне также нужны push-уведомления.
Таким образом, решение, основанное на базе в режиме реального времени, чтобы упасть, потому что, если приложение не работает, он не будет обрабатывать onChildAdded события.
Я прочитал документацию, что могу достичь своей цели, используя сообщение вверх по потоку от устройства к серверу.
Теперь также написано, что нам нужен сервер приложений.
Я просто хочу, чтобы уточнить необходимость сервера приложений (XMPP или HTTP), и что весь поток сообщений m1 посылается от устройства А, и уведомление о устройстве B.
В мое мнение приложение сервер должен действовать как человек в середине, так:
---> XMPP SERVER ---> FCM
FCM ---> XMPP SERVER --- > B
Это поток? В документации я не могу понять, прав я или нет. Если да, то как отправить сообщение из FCM обратно на сервер XMPP? Уведомляющее сообщение отправляется из FCM клиенту o с сервера XMPP?
Пожалуйста, уточните меня.
Другое решение думали мной: Так как я считаю, очень мощный firebase базу данных в режиме реального времени, я думал, что эти решения, чтобы ходить вокруг проблемы:
- Создать приложение сервер прослушивает
onChildAdded
и когда он изменяет отправить уведомление на клиентское устройство. - Создание фоновой службы на клиентском приложении, прослушивание
onChildAdded
и создание уведомления при необходимости.
Даже не все эти решения мне не нравятся. Просто хочу понять стандартный и правильный способ достижения моей цели.
Вам не нужно поддерживать сервер приложений при использовании базы данных реального времени Firebase. Вот и вся концепция Firebase, которой не нужно, чтобы сервер базы данных не связывался с нашей базой данных. Я точно не знаю, почему вам нужно внедрить push-уведомление, работая в одном чате, которое реализовано на базе Firebase? Вы хотите показать уведомление при получении нового сообщения? –
Вы можете взглянуть на эту ссылку. Это может помочь. https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html –
@ReazMurshed: Мне нужно реализовать push-уведомление, когда приложение не запущено. С единственной базой данных в реальном времени это невозможно. Если приложение не работает, оно не может обработать событие. Я читаю блог. Я понимаю, что написано, но я думаю, что это не лучшее решение, потому что документация на сайте firebase предлагает использовать Firebase Cloud messaging и сервер приложений для достижения того, что мне нужно. – xcsob