次のようなデータベース トリガーの onWrite イベントをリッスンする関数があります。
exports.sendNotifications = functions.database.ref('/events/{eventId}/registered')
.onWrite(event => {
...
});
上記の関数は、ノードが削除されたか追加されたかに関係なく呼び出されます。onWrite イベントがその特定のノードの「削除」イベントであるか、「追加」イベントであるかを確認して、この関数が「追加」イベントの場合にのみ呼び出されるようにするにはどうすればよいでしょうか。
ベストアンサー1
追加イベントに対してのみこの機能をトリガーしたい場合は、onCreate()
トリガーを使用するのがよいでしょう。
ただし、オブジェクトのonWrite()
プロパティbefore
とプロパティを使用して、それが 内部の追加イベントであるかどうかを検出することもできます。after
Change
exports.sendNotifications = functions.database.ref('/events/{eventId}/registered')
.onWrite((change, context) => {
if (change.before.exists()) {
//update event
return null;
} else if (!change.after.exists()) {
//delete event
return null;
} else {
//add event
//do stuff
}
});
詳細については、ドキュメントをご覧ください。
https://firebase.google.com/docs/functions/database-events#handle_event_data