如何不使用Firebase主题消息和设备组消息?

如何不使用Firebase主题消息和设备组消息?,firebase,firebase-realtime-database,firebase-cloud-messaging,Firebase,Firebase Realtime Database,Firebase Cloud Messaging,在我的特殊情况下,我想询问有关发送FCM的问题。我读过有关Firebase的文章,但认为它在我的场景中不起作用 我有一个Firebase连接的应用程序需要帮助 我想创建一个应用程序用户可以发送聊天信息的地方,没有人在听,或者可能有100多万人在听 有数以百万计甚至数十亿计的聊天室,无法知道有多少人在听任何聊天,可能有数以十亿计的Miljon人在听,可能有这么多通知用户发布了新消息 当用户向聊天室发送消息时,通知必须发送给所有正在收听的人 我怎样才能做到这一点?您只需使用Firebase数据库创建

在我的特殊情况下,我想询问有关发送FCM的问题。我读过有关Firebase的文章,但认为它在我的场景中不起作用

我有一个Firebase连接的应用程序需要帮助

我想创建一个应用程序用户可以发送聊天信息的地方,没有人在听,或者可能有100多万人在听

有数以百万计甚至数十亿计的聊天室,无法知道有多少人在听任何聊天,可能有数以十亿计的Miljon人在听,可能有这么多通知用户发布了新消息

当用户向聊天室发送消息时,通知必须发送给所有正在收听的人


我怎样才能做到这一点?

您只需使用Firebase数据库创建一个聊天应用程序即可。实际上,有很多针对该特定应用程序的教程

通常情况下,该结构会如下所示:

{
  "chats": {
    "one": {
      "title": "Historical Tech Pioneers",
      "lastMessage": "ghopper: Relay malfunction found. Cause: moth.",
      "timestamp": 1459361875666
    },
    "two": { ... },
    "three": { ... }
  },

  "members": {
    "one": {
      "ghopper": true,
      "alovelace": true,
      "eclarke": true
    },
    "two": { ... },
    "three": { ... }
  },

  "messages": {
    "one": {
      "m1": {
        "name": "eclarke",
        "message": "The relay seems to be malfunctioning.",
        "timestamp": 1459361875337
      },
      "m2": { ... },
      "m3": { ... }
    },
    "two": { ... },
    "three": { ... }
  }
}
()

因此,每当用户通过你的应用发送消息时,你只需在
messages
下创建一个新节点,并在
chats
下更新相应的条目即可。我会发布更多关于客户端进程的信息,但我不确定您使用的是哪个平台

编辑

为了进一步澄清,您应该收听平台上的
聊天
节点以了解任何更改,一旦最后一条消息的
时间戳
与您存储在设备上的内容发生更改,您就可以检查
消息
。您也可以在
消息中收听
childAdded


关于您的评论,在这种情况下,您不需要FCM,除非您想要推送通知,在这种情况下,您需要自己的服务器来监听更改并适当地发送通知。

听起来您需要Firebase实时数据库。是的,您的意思是,让每个注册聊天的用户都可以使用Firebase实时数据库密钥进行监听?但是,如果用户当前未使用该应用程序,该用户将无法正确获取消息?当“因此,每当用户通过您的应用程序发送消息时”-需要FCM服务器密钥时,安全性如何?谢谢澄清,但如果用户当前未使用该应用程序,该用户将无法正确获取消息,该怎么办?是的,我知道“需要你自己的服务器”。我只是想问这个问题来获得一些令人兴奋的东西!:-)我还想指出,FCM的“消息传递”与其说是即时消息传递,不如说是一种通知服务。是的,用户需要使用应用程序来接收消息。为了将这些消息“推送”到应用程序,您需要设置自己的服务器来执行相同的操作(侦听Firebase数据库节点),并使用FCM或任何其他方式推送这些消息。