如何通过 Firebase 从用户向用户发送直接消息?

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

I am really rookie and need an advice.

我已阅读文档,据我所知,如果您需要发送直接消息,请关注下一步:

I have read documentation, and as far as i understood if you need send direct message, follow next steps:

  1. 进行身份验证,最终获得 Firebase TokenIduserId
  2. 将它们发送到您的服务器端并将其存储在数据库中
  3. 当您要发送消息时,您需要创建 json 并放入topic textresipent userId 等等...
  4. 通过 HTTP 将此 json 发送到您的服务器端
  5. 当服务器检索到这个 json 时,它应该使用 Firebase API 来在 firebase 中创建具有随机名称的新消息块 child
  6. 最终服务器必须通过我们从消息中获得的 userId 在 DB 中找到 recipent 用户.
  7. 服务器会通过 userId 找到当前的 recipent 用户,接下来我们应该使用 firebase tokenId 来发送通知.
  8. 并使用此类数据发送配方用户通知 - 新名称消息块 child
  9. 收件人将连接到此当前区块并检索数据
  1. Make authentification, eventually you get Firebase TokenId and userId
  2. Send them to your server side and store it in DB
  3. When you are going to send a message you need create json and put inside topic text and resipent userId so on...
  4. Send this json via HTTP to your server side
  5. When server retrive this json, it should use Firebase API to create new message bloc child with random name in firebase
  6. Eventually server have to find recipent user in DB by userId that we get from message.
  7. After server will find current recipent user by userId , next we should take firebase tokenId In order to sent notification .
  8. And send recipent user notification with such data - name of new message bloc child
  9. Recipent will connect to this current bloc and retrive data

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

It is as i understood this consept, fix me please if smth wrong?

推荐答案

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

Your suggested approach sounds good. The most important thing to realize is that you require an app server to send a downstream message to a device. Using the database as the communication mechanism between the app and the app server is a popular approach.

您还可以使用 云消息传递的上游功能.但我从未尝试过这种方法,因为数据库对我来说很好用,而且我对学习另一种协议 (XMPP) 没什么兴趣.

You could also use Cloud Messaging's upstream capabilities. But I've never tried that approach, because the database works fine for me and I had little interest in learning yet another protocol (XMPP).

您可以在这篇 Firebase 博客文章中了解我是如何实现它的 在具有 Firebase 数据库和云消息传递的 Android 设备之间发送通知.

You can read how I implemented it in this Firebase blog post Sending notifications between Android devices with Firebase Database and Cloud Messaging.

相关文章