自2020年3月28日以来,我的所有HTTP云函数都出现了错误。在我上次更新之前,它们运行良好。我只更改了几件事,在上次部署后,我得到了这个错误:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>403 Forbidden</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Forbidden</h1>
<h2>Your client does not have permission to get URL <code>/api/v0/.../</code> from this server.
</h2>
<h2></h2>
</body>
</html>
我所做的所有更改并不是只针对BI中的HTTP功能实现。还有其他人也有同样的错误吗?从Firebase状态控制台来看,Firebase似乎没有遇到任何错误https://status.firebase.google.com/
编辑:添加了一个关于如何初始化HTTP云函数的摘录。
'use strict';
// node import
const cors = require('cors')({ origin: true });
const functions = require('firebase-functions');
const admin = require('firebase-admin');
// Setting timeout and memory for the deploy
const runtimeOpts = {
timeoutSeconds: 540,
memory: '2GB'
}
admin.initializeApp();
exports.exportMultipleDataToCSV = functions
.runWith(runtimeOpts)
.https.onRequest((request, response) => {
cors(request, response, () => {
if (request.method === 'PUT') response.status(403).send('Forbidden!');
if (request.method === 'DELETE') response.status(403).send('Forbidden!');
if (request.method === 'POST') response.status(403).send('Forbidden!');
// BI
let data = MY-BI;
response.status(200).set('Access-Control-Allow-Origin', '*').send(data);
});
});
我使用的是我刚刚看到的库"请求",它在两个月前就被弃用了。这可能是问题所在?https://www.npmjs.com/package/request
云功能最近更改了其默认IAM策略,将新功能限制为项目所有者(以前是allUsers
,允许公共访问(。
为了准备此更改,firebase-tools@7.7.0
在函数创建时添加了IAM策略更新,该更新添加了allUsers
权限。如果使用的是较旧版本的CLI,则可能会在受限模式下部署新功能。
然而,重要的是,此更改应仅适用于新功能的创建——如果某个功能已经存在并且仅更新过,则不应发生IAM更改。如果您在更新函数时遇到其他问题,请使用firebase-tools
提交详细的问题,包括调试日志。