2017-02-15 52 views
-1

想在我的特殊情况下询问发送FCM。我阅读了关于Firebase Topic messaging and Device group messaging的消息,但不认为它适用于我的情况。如何不使用Firebase主题消息传递和设备组消息?

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

我想创建一个应用程序用户可以发送聊天消息的地方,并且没有人在听,也可能有一百多万人正在收听。

有数百万甚至数十亿的聊天室,并且没有办法告诉有多少人正在收听任何聊天,可能会有数十亿人在收听,可能会有很多通知来通知用户发布了新消息

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

我怎么能这样做?

+0

听起来你需要Firebase实时数据库。 –

+0

也许,你的意思是,让每个注册微粒聊天的用户都可以在Firebase实时数据库密钥上进行收听?但是如果用户目前没有使用该应用程序,那么该用户将不会收到正确的消息? –

回答

0

您可以简单地使用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": { ... } 
    } 
} 

source

因此,只要用户通过您的应用程序发送一条消息,你只需要创建messages下一个新节点,更新chats下的相应条目。我会发布更多关于客户端的过程,但我不知道你使用的

编辑

澄清远一点,你要听的chats节点的平台你的平台进行任何更改,一旦最后一条消息的timestamp从您存储在设备上的内容发生更改,就会检查messages。那么,或者你可以简单地在messages中收听childAdded

关于你的评论,你并不真正需要FCM在这种情况下,除非你想推送通知,在这种情况下,你需要自己的服务器,要监听的变化,以及和适当的调度通知。

+0

安全性如何“当用户通过您的应用程序发送消息” - FCM服务器密钥是否正确? –

+0

感谢您的澄清,但如果用户当前未使用该应用程序,该用户将无法获得正确的消息?是的,我知道“需要你自己的服务器”。我只是想问这个Q得到一些振动 –

+2

当然可以! :-)我还想指出,FCM的“消息传递”更多的是通知服务而不是即时消息。是的,用户需要使用应用程序来接收消息。为了将这些消息“推送”到应用程序,您需要设置自己的服务器来执行相同的操作(监听Firebase数据库节点)并使用FCM或其他方式推送这些消息。 – ThunderStruct

相关问题