[英]Firebase Cloud Function, how can I access parent data after onCreate event triggered?
我的實時數據庫數據看起來像這樣,但並不總是有“alarmLevel”數據。 我正在嘗試設置雲 function 以監視是否創建了“alarmLevel”,然后從該節點內訪問其他數據以為推送通知消息提供上下文。
-caddata
-CC00202022
-agencyEventId: CC00202022
-agencyEventSubtypeCode: 55-B-1
-agencyEventTypeCode: 55
-agencyEventTypeCodeDesc: Electrical Hazard
-agencyId: 5-36
-alarmLevel: 1 //creation of this data triggers .onCreate event
-location: 123 Main St
-priority: 5
-totalAssignedUnits: 1
我的雲 function 看起來像這樣:
exports.sendAlarmLevelNotification = functions.database.ref('/caddata/{agencyEventId}/alarmLevel').onCreate(async (event, context) => {
let updatedEventCC = context.params.agencyEventId
let title = ('Events');
let content = ('Alarm Level Increase For Event# '+ updatedEventCC +'.');
let badge = ('1');
var payload = {
notification: {
title: title,
badge: badge,
body: content,
},
};
觸發器本身按我的意圖工作。 它的 rest 之所以有效,是因為 context.params 與我需要的值之一 (agencyEventId) 相同,但我還需要在同一節點中獲取“agencyId”的值,這是我無法弄清楚的。
在您的代碼中, event
最好標記為snap
並且是DataSnapshot (請參閱文檔)。 這意味着您可以使用它遍歷樹並獲取數據:
exports.sendAlarmLevelNotification = functions.database
.ref('/caddata/{agencyEventId}/alarmLevel')
.onCreate(async (snap, context) => {
const parentSnap = await snap.ref.parent.once('value');
const agencyId = parentSnap.child('agencyId').val();
// ... do whatever you want with the data
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.