Firebaseのcloud functionsにて、「Firestoreの特定のドキュメントが編集されたことをトリガーとして(onWrite)、ビジネスロジックを実行する」という関数を作成しようとしています。
トリガーとしたいFirestoreのドキュメントは、以下のようなパスで2か所にあります。
・/user/{userid} ・/user/{userId}/otherInfo/{otherInfoId}
以下のような構成とすることで、2つの関数を作成し、それぞれ正常に実行されることは確認できました。
構成 functions ┗ index.js ┗ lib ┗ bizLogic.js
nodejs
1index.js 2 3const functions = require('firebase-functions'); 4const bizLogic = require('./lib/bizLogic'); 5 6exports.triggerFirestore1 = finctions.firestore.documant('user/{userid}').onWrite(bizLogic.handler); 7exports.triggerFirestore2 = finctions.firestore.documant('user/{userId}/otherInfo/{otherInfoId}').onWrite(bizLogic.handler);
nodejs
1./lib/bizLogic 2 3exports.handler = async (event, context) => { 4 /*** ビジネスロジック ***/ 5}
どちらのドキュメントでも実行するビジネスロジックは共通であるため、保守性を考慮して一つの関数として作成したいと考えています。
ただ、デプロイ時にexportsの数だけ関数が作成されてしまい、ソースコードが二重管理のような状態になってしまいました。
(例えば、triggerFirestore1のlib/bizLogicをコンソールのインラインエディタから編集してもtriggerFirestore2のlib/bizLogicは編集前のまま)
1つの関数内で、異なるパスのfirestoreのonWriteをトリガーとして実行する方法をご存じの方がいらしたらご教示願いたいと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/18 06:20