0

如何通過Firebase發送主題消息?如何發送消息到Android主題

我只找到了使用Firebase控制檯發送的方式, 以及一些關於發佈HTTP請求的方式, ,但我不明白如何在Android中執行此操作。

如何在Android 中編寫一些代碼來指定要定位的主題然後將消息發送到主題?

謝謝。

+0

你可能需要Android和火力之間的服務器,使其工作... –

回答

7

向設備發送消息(所謂的下游消息)需要HTTP呼叫,該呼叫指定服務器密鑰。顧名思義,這個關鍵只能用在你可以信任的環境中。您不能直接從設備向其他設備發送消息,包括主題。這diagram from the Firebase Cloud Messaging documentation shows the flow

diagram showing the flow of FCM messages

所以,如果你想發送消息的Android應用程序,你必須:

  1. 創建服務器端代碼,Android應用程序會談
  2. 有服務器端代碼call Firebase Cloud Messaging to send messages
  3. 有Android應用程序調用您的 server-sid e代碼

我們的博客文章Sending notifications between Android devices with Firebase Database and Cloud Messaging中描述了完成此類流程的一種方法。它使用Firebase數據庫與服務器端腳本通信,然後調用FCM將消息發送到主題。這篇文章中的服務器端代碼是一個Node.js腳本,因爲它是我編寫它時最簡單的方法。

但是上週Firebase發佈了Cloud Functions for Firebase。這使您可以運行服務器端代碼,而無需管理自己的基礎架構,這使其非常適合您的使用情況。事實上,它是這樣一個不錯的選擇,它是第一個在documentation on use-cases for Cloud Functions for Firebase

Send FCM message through Cloud Functions for Firebase

你會看到,這個樣本中的方法是非常相似的人在博客文章:兩個偵聽數據庫寫入觸發發送FCM消息。與博客文章相比,示例中的某些更改:

-1

如果您的應用在火力地堡控制檯註冊,您不僅可以通過火力地堡控制檯,但通過任何HTTP客戶端發送消息。 這裏是代碼中的Fiddler發送通知爲 「新聞」 主題

  1. 地址:https://gcm-http.googleapis.com/gcm/send
  2. 接頭: 內容類型:應用/ JSON 授權:鍵= [YOUR_APP_API_KEY]
  3. Body:

{ 「to」:「/ topics/news」, 「通知」:{ 「體」:「你好!夥計」, } }

或使用Android應用發送消息 sample from github