2017-02-15 50 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

相關問題