Firebaseで最初に小さいコードを書いて動作確認をします。手始めに、DBの/todos/{uid}の下にタスクが追加された時と、タスクが更新された時にコンソールへメッセージを表示します。トリガの動作確認用コードの作成/todos/{uid}/の下にタスクが追加された時と、タスクが更新された時にコンソールにメッセージを表示します。null;})firebase-functionsを使用します(#1)。Functionを使用するのに必要です。firebase-adminを使用します(#2)。Databaseを利用するのに必要です。admin.initializeAppでadminを初期化します(#3)。タスクが追加された時に実行される関数を定義します(#4)。functions.database.ref('/todos/{uid}/{todoId}/text’).onCreate()で/todos/{uid}/{todoId}/text’が新規作成された時に、onCreateの引数で与えた関数を実行します。パスは、/todos/{uid}/{todoId}でなく、/todos/{uid}/{todoId}/textです。深い所にトリガを設定します。console.logで、Firebaseのコンソールにログを出力することが可能になります(#7)。関数はPromiseか値を返す必要があります。返す値がない場合はnullでよいでしょう(#8)。処理が完了した時に何も返さないとエラーになります。タスクが更新された時に実行される関数を定義します(#9)。今回はcompletedの値しか変化しないので、pathは/todos/{uid}/{todoId}/completedです。Functionsのデプロイfunctions/index.jsをデプロイします。https://console.firebase.google.com/project/todo-sample-xxxxx/overviewデプロイが完了しました。Firebaseコンソールでデプロイした関数を確認します。動作確認タスクを追加します。コンソールを確認します。called.と、uidとtodoIdが表示されていることが確認できました。コンソールを確認します。called.と、uidとtodoIdが表示されていることが確認できました。以上で、/todos/{uid}の下にタスクが追加された時と、タスクが更新された時にコンソールへメッセージを表示することができました。作成トリガと更新トリガは、更新日時を使用するのがおすすめ今回は、タスクの作成トリガは/todos/{uid}/{todoId}/textの作成、更新トリガは/todos/{uid}/{todoId}/completedの更新としました。問題なく動きますが、将来的に項目が増えた時にトリガを追加し忘れる恐れがあります。データごとにトリガになるプロパティが違うのは面倒です。この問題を解決するには、すべてのデータに、作成日付を表す_createdAtプロパティと更新日付を表す_updatedAtプロパティを付与します。データの作成は、_cretedAtの作成をトリガにし、データの更新は、_updatedAtの更新をトリガにします。以下の記事でこれの対応をしています。「ピーターからの問題」1から9までを使って分数の穴埋め算。(1)はてなブログをはじめよう!yucatioさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。