如何让Firebase功能模拟器使用生产Firebase存储桶

问题描述

所以我已经通过firebase init functionsfirebase-tools初始化了一组Firebase函数。然后,我编写了一个函数,如下所示:

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

exports.resizeImage = functions.storage.object().onFinalize(async (object) => {
  functions.logger.info("Uploaded object!");
});

然后,我使用cd functions npm run serve在新的模拟器上运行函数。然后,我在日志中收到此消息:

i  functions[resizeImage]: function ignored because the storage emulator does not exist or is not running.

我还尝试对项目进行firebase init storage,以查看是否有帮助,但这并没有改变。

这令人困惑...因为不存在云存储模拟器。我以为如果没有所需的仿真器,这些仿真器应该退回到生产资源上?我在文档中没有看到明显的答案(除非我蒙蔽了它)。在部署之前是否可以在本地运行这些功能,还是我必须经历艰苦的~~ testing ~~希望我的代码正确地热运行?

解决方法

我亲自尝试过在本地运行Firebase,它可以正常运行,但是即使在package.json中进行设置,它也不需要对nodemon进行更改

尝试AWS,我知道这听起来很新,但是部署起来更容易。

但是,如果您真的想使用HTTP请求中的云功能,则可以给它一个URL,也可以通过其名称触发它

这里有一些有关事件触发的文档。

https://cloud.google.com/functions/docs/concepts/events-triggers

我还认为,由于您的问题,您没有正确设置Firebase,您需要转到仪表板并启用所有功能以及在CLI中启用它。

让我知道这是否有帮助或您是否可以繁殖。