Firebase HTTP Cloud Function HTTP 错误代码 403
Firebase HTTP Cloud Function HTTP error code 403
自 28-03-2020 以来,我所有的 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);
});
});
我正在使用我刚刚看到的库 "request",它在 2 个月前已被弃用。这可能是问题所在? https://www.npmjs.com/package/request
Cloud Functions 最近更改了新功能的默认 IAM 策略,以限制项目所有者(以前是 allUsers
,允许 public 访问)。
为准备此更改,firebase-tools@7.7.0
添加了关于添加 allUsers
权限的函数创建的 IAM 策略更新。如果您使用的是旧版本的 CLI,新功能可能会以受限模式部署。
然而,重要的是,此更改应仅适用于新功能的创建——如果功能已存在且仅更新,则不应发生 IAM 更改。如果您在更新功能时遇到其他问题,请 file a detailed issue 包括带有 firebase-tools
.
的调试日志
自 28-03-2020 以来,我所有的 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);
});
});
我正在使用我刚刚看到的库 "request",它在 2 个月前已被弃用。这可能是问题所在? https://www.npmjs.com/package/request
Cloud Functions 最近更改了新功能的默认 IAM 策略,以限制项目所有者(以前是 allUsers
,允许 public 访问)。
为准备此更改,firebase-tools@7.7.0
添加了关于添加 allUsers
权限的函数创建的 IAM 策略更新。如果您使用的是旧版本的 CLI,新功能可能会以受限模式部署。
然而,重要的是,此更改应仅适用于新功能的创建——如果功能已存在且仅更新,则不应发生 IAM 更改。如果您在更新功能时遇到其他问题,请 file a detailed issue 包括带有 firebase-tools
.