Firebase: onWrite イベントの「書き込みまたは削除」を確認する 質問する

Firebase: onWrite イベントの「書き込みまたは削除」を確認する 質問する

次のようなデータベース トリガーの onWrite イベントをリッスンする関数があります。

exports.sendNotifications = functions.database.ref('/events/{eventId}/registered')
        .onWrite(event => {

            ...
         });

上記の関数は、ノードが削除されたか追加されたかに関係なく呼び出されます。onWrite イベントがその特定のノードの「削除」イベントであるか、「追加」イベントであるかを確認して、この関数が「追加」イベントの場合にのみ呼び出されるようにするにはどうすればよいでしょうか。

ベストアンサー1

追加イベントに対してのみこの機能をトリガーしたい場合は、onCreate()トリガーを使用するのがよいでしょう。

ただし、オブジェクトのonWrite()プロパティbeforeとプロパティを使用して、それが 内部の追加イベントであるかどうかを検出することもできます。afterChange

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

おすすめ記事