2016-05-31 44 views
1

我正在開發一個新的聊天應用程序,該應用程序目前與Firebase實時數據庫和cordova一起使用。從客戶端發送firebase雲消息而不暴露API祕密

我正在尋找無後端解決方案,因爲我目前的工作應用程序除了一個微型服務器之外不需要任何服務器,它的唯一功能是爲客戶端提供時間授權令牌。

此令牌允許客戶端直接與Firebase一起工作,而無需更昂貴且加載的服務器,並且仍具有對應用程序使用的中央控制。

通過閱讀new firebase documentation我認爲,通知和火力點雲信息應用不能通過客戶端來發帖,僅聽通知因爲所有的發送消息例子揭露服務器API密鑰,這顯然不能在客戶端。

有沒有辦法從中央服務器發出時間令牌,客戶端可以使用它發送消息,而不必將所有消息發送到服務器,然後返回到其他設備?

謝謝

+0

您可以從客戶端發送的上游消息,但需要你實現與FCM打開連接的XMPP服務器。 FCM尚不支持無服務器設備到設備消息傳遞。 –

回答

3

向具有Firebase雲消息傳遞的設備發送下游消息需要訪問授權密鑰。出於這個原因,它應該運行在一個可信的進程中,比如在你控制的硬件上。

0

今天推出了Firebase雲端函數,它可以解決您的問題!您可以在您的功能代碼(它運行在Google的服務器上,而不是客戶端上)中初始化firebase-admin SDK,並使用它來訪問FCM。這樣您可以發送消息來響應新的數據庫項目,或者響應HTTPS請求。

這裏有一個介紹到雲功能的火力地堡:https://firebase.google.com/docs/functions/

這裏是你如何利用火力管理員發送FCM消息: https://firebase.google.com/docs/cloud-messaging/admin/send-messages