首页 > 解决方案 > 从 firebase 函数触发器访问 firebase 托管文件

问题描述

我有 2 个存储库,一个用于 firebase 功能,另一个用于静态 firebase 托管反应站点。他们都使用相同的firebase项目。

myfirebaseproject
--- firebase functions

--- firebase hosting
------index.html

我可以从 firebase-function 读取我的 firebase-hosting 文件吗?

let indexHTML = fs.readFileSync('pathToFirebaseHosting/index.html').toString();

标签: firebasegoogle-cloud-firestoregoogle-cloud-functions

解决方案


要意识到的一件重要事情是,Firebase 托管和 Cloud Functions 是完全不同的产品,并且在非常临时和瞬态的 Cloud Functions 实例中没有简单的托管文件可用的本地路径。所有东西都没有捆绑在一个地方(根本无法扩展)。

由于托管文件都是公开的,因此弗兰克说的是对的 - 只需根据您的需要发出 HTTP 请求。我建议改用 request-promise 模块,因为它为您提供了一个基于 Promise 的界面,在 Cloud Functions 中更易于使用。

请注意,如果您想发出这样的传出 HTTP 请求,您必须在您的项目上启用计费。否则,Cloud Functions 将不允许请求发生。另请注意,来自 Cloud Functions 和 Hosting 的出站和入站将产生额外费用。因此,如果您经常提出此请求,预计会产生一些与之相关的费用。

如果您只想在 Cloud Function 中使用一些静态文件而无需发出外部请求,只需将这些文件复制到您的函数文件夹中,然后将它们与您的代码一起部署即可。您将能够在本地阅读它们,您无需启用计费即可尝试,并且不会产生出入费。它也会更快。


推荐阅读