从firebase函数触发器访问firebase托管文件



我有两个repo,一个用于firebase函数,另一个用于静态firebase托管react站点。他们都使用相同的防火基地项目。

myfirebaseproject
--- firebase functions
--- firebase hosting
------index.html

我可以从firebase函数读取我的firebase托管文件吗?

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

需要认识到的一件重要事情是,Firebase Hosting和Cloud Functions是完全不同的产品,在一个非常临时和瞬态的Cloud Functions实例中,没有一个简单的本地路径来托管文件。并不是所有的东西都被捆绑在一个地方(这根本不会扩大规模)。

由于托管文件都是公开的,Frank说的是对的——只需对您需要的内容发出HTTP请求。我建议使用请求-承诺模块,因为它为您提供了一个更容易在云函数中使用的基于承诺的接口。

请注意,如果您想发出这样的传出HTTP请求,您必须对您的项目启用计费。否则,云功能将不允许请求发生。还要注意,云功能和主机的出口和入口将有额外的计费。因此,如果你经常提出这个请求,预计会产生一些相关成本

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

虽然Firebase Hosting API有一个REST API,但它专注于部署更新,并且没有访问部署文件的调用。

但是,由于所有部署的文件都可以公开访问,您可以通过常规的HTTP请求从公共互联网上读取它们:

request('https://yourproject.firebaseapp.com/index.html', (err, res, body) => {
if (err) { return console.log(err); }
console.log(body);
});

最新更新