当前位置: 首页 > 知识库问答 >
问题:

我如何为Firebase构造云函数以从多个文件部署多个函数?

姜德容
2023-03-14

我想为Firebase创建多个云功能,并从一个项目中同时部署它们。我还想将每个函数分离到一个单独的文件中。当前,如果将它们都放在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个答案

陶琦
2023-03-14

啊,Firebase的云功能通常会加载节点模块,所以这是可行的

结构:

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

index.js:

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);
exports.handler = (event) => {
    ...
};
exports.handler = (event) => {
    ...
};
 类似资料:
  • 真的不可能在 dart 中为一个类创建多个构造函数吗? 在我的播放器类中,如果我有这个构造函数 然后我尝试添加这个构造函数: 我得到以下错误: 默认构造函数已定义。 我不是通过创建一个带有一堆非必需参数的构造函数来寻找解决方法。 有没有好办法解决这个问题?

  • 我有多个云函数使用一个值,基本上是这样的: 问题是我想要更改页脚内容(由返回),但为了这样做(就我所研究的),我首先必须在代码中更改它,然后部署使用的每个云函数(和),这样页脚在每种类型的电子邮件上看起来都是一样的。 当然,我可以使用同时部署所有函数,但是我们曾经是多个开发人员,我们中的一些人将函数更新到我们不知道index.js中哪些函数与GCP中的相同(大约20个函数),我必须检查每一个函数,

  • 我需要避免重复的代码与这些构造函数,所以我想知道是否有一种方法来实例化这些变量只有一个?我看到了很多关于链接的帖子,但我还没有让它正常工作。

  • 如何使用Firebase云函数实现微服务架构?我们是否可以编写多个.js文件,而不是将所有函数都写入index.js中,这样就不必为了单个函数的变化而重新部署所有函数

  • 我正在尝试修改类Circle以包含第三个构造函数,用于构造具有两个参数的Circle实例——半径的双精度和颜色的字符串。还修改主类以使用此构造函数构造Circle的实例。我对此有困难,我一直收到从未使用构造函数Circle的消息。请查看代码。

  • 我已经使用firebase云函数一段时间了,今天在代码中修复了一个小错误,在尝试部署时出现了以下错误。我取消了该更改,并尝试使用上次提交的稳定更改再次部署,但仍然是相同的错误。有什么解决办法吗?PS:这是一个typescript项目,我用tsc编译它。