【问题标题】:How to send direct message via Firebase from user to user?如何通过 Firebase 从用户向用户发送直接消息?
【发布时间】:2016-08-31 08:53:07
【问题描述】:

我真的是新手,需要建议。

我有read documentation,据我了解,如果您需要发送直接消息,请按照以下步骤操作:

  1. 进行认证,最终得到Firebase TokenIduserId
  2. 将它们发送到您的服务器端并将其存储在数据库中
  3. 当您要发送消息时,您需要创建json 并输入 在topictextresipent userId 等等...
  4. 通过 HTTP 将此 json 发送到您的服务器端
  5. 当服务器检索此json 时,它应该使用 Firebase API 来 在 firebase 中使用随机名称创建新消息块 child
  6. 最终服务器必须通过我们从消息中获得的 userId 在 DB 中找到 recipent 用户。
  7. 服务器通过userId找到当前recipent用户后,接下来我们应该取firebase tokenId来发送通知。
  8. 并使用此类数据发送配方用户通知 - 新名称 消息群child
  9. 收件人将连接到此当前块并检索数据

这是我理解的这个概念,如果有错误请纠正我?

【问题讨论】:

标签: java android firebase firebase-cloud-messaging


【解决方案1】:

您建议的方法听起来不错。要实现的最重要的事情是您需要应用服务器将下游消息发送到设备。使用数据库作为应用程序和应用程序服务器之间的通信机制是一种流行的方法。

您也可以使用Cloud Messaging's upstream capabilities。但我从未尝试过这种方法,因为数据库对我来说很好用,而且我对学习另一种协议 (XMPP) 没什么兴趣。

您可以在这篇 Firebase 博客文章 Sending notifications between Android devices with Firebase Database and Cloud Messaging 中了解我是如何实现它的。

【讨论】:

  • 如果我订阅了 2 个不同的主题(A 和 B),请您解释一下接下来的事情,这意味着我将与它们同步吗?但如何将其单独呈现给用户?在两个不同的聊天中?
  • 我通常只会使用通知来显示提示。当用户单击该提示时,他们会返回应用程序,您可以在那里找到他们的聊天记录。但是,如果这完全取决于您,那么它适用于您的应用程序。
  • 最后一个问题)我试图在谷歌中找到答案,但没有成功。也许你知道。据您所知,服务器何时发送通知客户端可以将其保存在onMessageReceived() 中,只要应用程序进入前台,如果应用程序进入后台,您必须在活动中使用bundle。但问题是如果用户收到通知并丢弃它会发生什么?这意味着有效载荷数据将丢失,对吗?你怎么看?
猜你喜欢
  • 2017-05-16
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 2018-12-16
  • 2017-10-12
  • 2016-11-30
  • 1970-01-01
相关资源
最近更新 更多