【问题标题】:How to let firebase function emulator use production firebase storage bucket如何让firebase函数模拟器使用生产firebase存储桶
【发布时间】:2021-01-25 03:40:09
【问题描述】:

所以我通过firebase-tools 使用firebase init functions 初始化了一组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 以查看是否有帮助,但这并没有改变任何事情。

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

【问题讨论】:

    标签: javascript node.js firebase-storage firebase-tools


    【解决方案1】:

    我个人尝试在本地运行 Firebase,它运行良好,但它不会从 nodemon 中进行更改,即使在 package.json 中设置

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

    但如果您真的想通过 HTTP 请求使用云功能,您可以得到一个 URL,或者您可以通过其名称触发它

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

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

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

    让我知道这是否有帮助或者你是否可以复制。

    【讨论】:

    • 我的 firebase 项目启用了功能和存储。对于与存储交互的功能,这就是需要启用的所有功能。在我的仪表板上和本地源中都是这种情况。我不是在尝试在 http 请求上触发该功能,而是在将文件上传到我的 firebase 存储桶时尝试触发它。当我部署该功能时,我的问题中的功能按预期工作,但当我在本地提供功能时它不会,因为我没有存储模拟器(它不存在)。我希望我的函数能够监视我的远程存储桶。
    猜你喜欢
    • 2021-11-27
    • 2021-09-30
    • 2021-09-06
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多