2016-08-31 4 views
1

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

У меня есть read documentation, и, насколько я понял, если вам нужно отправить прямое сообщение, выполните следующие действия:

  1. Сделайте аутентификацию, в конечном итоге вы получите Firebase TokenId и userId
  2. отправить их на стороне сервера и хранить его в БД
  3. Когда вы собираетесь отправить сообщение, Вам необходимо создать json и положить внутри topictext и resipent userId с о на ...
  4. Отправить это json через HTTP на вашей стороне сервера
  5. Когда сервер retrive это json, он должен использовать Firebase API для создания нового сообщения блока child со случайным именем в firebase
  6. В конце концов сервер должен найти пользователя-получателя в БД по userId, который мы получаем из сообщения.
  7. После того, как сервер найдет текущего пользователя-получателя по адресу userId, затем мы должны принять firebase tokenId Чтобы отправить уведомление.
  8. И отправить recipent уведомления пользователя с такими данными - имя нового сообщения блока child
  9. Recipent будет подключаться к этому текущему блоку и retrive данные

Это как я понял это CONSEPT, исправить меня, пожалуйста, если smth неправильно?

+0

привет, вы можете получить решение из моего ответа http://stackoverflow.com/questions/38432243/how-to-send-device-to-device-notification-by-using-fcm-without-using-so- xmpp-or-any –

+0

@VishalPatoliya да, в соответствии с вашим ответом, могу ли я сделать вывод, что моя точка зрения верна? –

+0

3. Когда вы собираетесь отправить сообщение, вам нужно создать json и вставить текст темы и повторно нажать userId и так далее ... здесь resepient is refresh_token не user_id –

ответ

1

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

Вы также можете использовать Cloud Messaging's upstream capabilities. Но я никогда не пробовал этот подход, потому что база данных отлично работает для меня, и я мало интересовался изучением еще одного протокола (XMPP).

Вы можете прочитать, как я реализовал его в этом сообщении блога Firebase Sending notifications between Android devices with Firebase Database and Cloud Messaging.

+0

Не могли бы вы объяснить мне следующую вещь, если я подкожусь на две разные темы (A и B), это значит, что я синхронизирую их с обоими из них? но как представить его пользователю отдельно? в двух разных чатах? –

+0

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

+0

И последний вопрос) Я попытался найти ответ в Google, но безуспешно. Может быть, вы знаете. Насколько вам известно, когда серверная отправка клиентской стороне уведомления может хранить ее в 'onMessageReceived()' просто, если приложение переходит в foregroung, если приложение переходит в backgroung, вы должны использовать 'bundle' в действии. Но вопрос в том, что произойдет, если пользователь получит уведомление и отбросит его? Это означает, что данные полезной нагрузки будут потеряны, не так ли? Что вы думаете об этом? –

Смежные вопросы