2
當我向數據庫添加記錄或發生其他數據庫事件時,我可以發送Firebase雲消息。我的問題是,如果我有記錄需要在某個特定時間向某組設備發送通知,我是否可以輕鬆完成此操作?這是我可以在Google App Engine上做的事嗎?如何在數據庫中發生時間事件時發送FCM?
例子:
我有一個與他們不同的時間值的記錄列表。當該記錄的時間值等於服務器機器的時間值時,發送該消息。
當我向數據庫添加記錄或發生其他數據庫事件時,我可以發送Firebase雲消息。我的問題是,如果我有記錄需要在某個特定時間向某組設備發送通知,我是否可以輕鬆完成此操作?這是我可以在Google App Engine上做的事嗎?如何在數據庫中發生時間事件時發送FCM?
例子:
我有一個與他們不同的時間值的記錄列表。當該記錄的時間值等於服務器機器的時間值時,發送該消息。
這裏沒有隱藏的魔法。您必須編寫代碼來監聽數據庫中的更改,然後調用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。
另見:
謝謝謝了!我可以在應用程序服務器/ Google Apps引擎上運行它嗎? Google Apps Engine會不定期地收聽Firebase服務器的時間?例如,如果我將服務器上的數據偵聽器設置爲偵聽添加的數據,然後在該時間發生時觸發消息。這看起來好像只是在數據項被添加時反映,而不是在下午6:00發生時才反映。 –
啊......我錯過了基於時間觸發的部分。爲此,您需要在特定時間觸發它(即使用cron作業)或運行簡單的優先級隊列。 –
太棒了。這是我在挖掘更多資源後所想的。謝謝! –