複数のファイルから複数の関数をデプロイするには、Cloud Functions for Firebase をどのように構成すればよいですか? 質問する

複数のファイルから複数の関数をデプロイするには、Cloud Functions for Firebase をどのように構成すればよいですか? 質問する

Firebase 用の Cloud Functions を複数作成し、1 つのプロジェクトから同時にすべてデプロイしたいと考えています。また、各関数を別のファイルに分割したいと考えています。現在、次のように両方を index.js に配置すると、複数の関数を作成できます。

exports.foo = functions.database.ref('/foo').onWrite(event => {
    ...
});

exports.bar = functions.database.ref('/bar').onWrite(event => {
    ...
});

しかし、foo と bar を別々のファイルに置きたいので、次のように試しました:

/functions
|--index.js (blank)
|--foo.js
|--bar.js
|--package.json

foo.jsは

exports.foo = functions.database.ref('/foo').onWrite(event => {
    ...
});

そしてbar.jsは

exports.bar = functions.database.ref('/bar').onWrite(event => {
    ...
});

すべての関数を index.js に置かずにこれを実現する方法はありますか?

ベストアンサー1

ああ、Cloud Functions for Firebaseはノードモジュールを正常にロードするので、これは機能します

構造:

/functions
|--index.js
|--foo.js
|--bar.js
|--package.json

インデックス:

const functions = require('firebase-functions');
const fooModule = require('./foo');
const barModule = require('./bar');

exports.foo = functions.database.ref('/foo').onWrite(fooModule.handler);
exports.bar = functions.database.ref('/bar').onWrite(barModule.handler);

foo.js:

exports.handler = (event) => {
    ...
};

bar.js:

exports.handler = (event) => {
    ...
};

おすすめ記事