Firebase HTTP Cloud Function HTTP код ошибки 403 - PullRequest
1 голос
/ 30 марта 2020

с 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>

Все сделанные мной изменения не относятся к реализации функции HTTP только в BI. Есть кто-то еще с такой же ошибкой? Из консоли состояния 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);
    });
});

Я использую библиотечный «запрос», который я только что видел, который устарел 2 месяца назад go. Это может быть проблемой? https://www.npmjs.com/package/request

1 Ответ

2 голосов
/ 30 марта 2020

Облачные функции недавно изменили свои политики IAM по умолчанию, чтобы новые функции были ограничены владельцами проектов (ранее это был allUsers, который разрешает публичный c доступ).

Чтобы подготовиться к этому изменению, firebase-tools@7.7.0 добавлено обновление политики IAM при создании функции, которое добавляет разрешения allUsers. Если вы используете более старую версию CLI, новые функции могут быть развернуты в ограниченном режиме.

Важно, однако, это изменение должно применяться только к созданию новых функций - если функция уже существует и был только обновлен, никаких изменений IAM не должно происходить. Если вы испытываете что-то еще при обновлении функций, сообщите подробный вопрос , включая журналы отладки с firebase-tools.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...