10

firebase-queueワーカーをクラウド機能に移行するために、Cloud Functions for Firebase を試しています。特定の参照で新しいノードを作成するたびに、最後に更新されたタイムスタンプを追加する単純な関数を追加しました。関数は次のようになります。

var functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.setLastUpdatedTimestamp = functions.database.ref('/nodes/{nodeId}')
  .onWrite(event => {
    const original = event.data.val();
    console.log('Adding lastUpdatedTimestamp to node ', original.name);
    return event.data.ref.child('lastUpdatedAtFromFC').set(Date.now());
  });

このクラウド機能をデプロイし、アプリからノードを 1 つだけ追加しました。Firebase Functions ダッシュボードにアクセスすると、関数が 169 回呼び出されていることがわかりましたが、その理由はわかりません。ログを見てみると、過去の全ノードにも機能を付けているようなログが。

onWriteが同様に動作child_addedし、既存のすべてのエンティティに対しても関数を実行する場合はありますか?

関数を変更して再度デプロイするたびに、このアクションが繰り返されますか?

新しく追加されたノードに対して一度だけ実行されることを期待していました。

4

3 に答える 3