2016-05-26 29 views
2

當我向數據庫添加記錄或發生其他數據庫事件時,我可以發送Firebase雲消息。我的問題是,如果我有記錄需要在某個特定時間向某組設備發送通知,我是否可以輕鬆完成此操作?這是我可以在Google App Engine上做的事嗎?如何在數據庫中發生時間事件時發送FCM?

例子:

我有一個與他們不同的時間值的記錄列表。當該記錄的時間值等於服務器機器的時間值時,發送該消息。

回答

3

這裏沒有隱藏的魔法。您必須編寫代碼來監聽數據庫中的更改,然後調用Firebase Cloud Messaging。

ref.on('child_added', function(snapshot) { 
    request({ 
    url: 'https://fcm.googleapis.com/fcm/send', 
    method: 'POST', 
    headers: { 
     'Content-Type' :' application/json', 
     'Authorization': 'key=AI...8o' 
    }, 
    body: JSON.stringify(
     { data: { 
      message: "your message" 
     }, 
     to : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..." 
     } 
    ) 
    }, function(error, response, body) { 
    if (error) { 
     console.error(error); 
    } 
    else if (response.statusCode >= 400) { 
     console.error('HTTP Error: '+response.statusCode+' - '+response.statusMessage); 
    } 
    else { 
     console.log('Message sent'); 
    } 
    });  
}) 

以上JavaScript代碼片段將以代碼運行並調用Firebase Cloud Messaging HTTP endpoint to send a message

另見:

+0

謝謝謝了!我可以在應用程序服務器/ Google Apps引擎上運行它嗎? Google Apps Engine會不定期地收聽Firebase服務器的時間?例如,如果我將服務器上的數據偵聽器設置爲偵聽添加的數據,然後在該時間發生時觸發消息。這看起來好像只是在數據項被添加時反映,而不是在下午6:00發生時才反映。 –

+0

啊......我錯過了基於時間觸發的部分。爲此,您需要在特定時間觸發它(即使用cron作業)或運行簡單的優先級隊列。 –

+0

太棒了。這是我在挖掘更多資源後所想的。謝謝! –

相關問題