Функция вызываемого облака в Firebase Ошибка CORS - PullRequest
1 голос
/ 26 марта 2020

Ниже приведен код на стороне клиента для вызова облачной функции:

var getShippingRate = firebase
            .functions()
            .httpsCallable("shippo-generateShippingRate");
          getShippingRate({ address: shippo })
            .then(function(result) {
              // Read result of the Cloud Function.
              console.log("THE SHIPPING RATES", result.data.shipment);
            })
            .catch(function(error) {
              // Getting the Error details.
              console.log("ERROR SHIPPING: ", error);
              var code = error.code;
              var message = error.message;
              var details = error.details;
            });

Облачная функция:

exports.generateShippingRate = functions.https.onCall(async (data, context) => {
const customer_address = data.address;

return generateShipmentObject(customer_address);
});

generateshipmentObject возвращает это:

shippo.shipment.create(
{
  address_from: addressFrom,
  address_to: addressTo,
  parcels: [parcel],
  async: true
},
(err, shipment) => {
  // asynchronously called
  if (err) {
    return { error: err };
  } else {
    return { result: shipment };
  }
}

Я получаю стандартную ошибку CORS, но вызываемая облачная функция должна обработать это автоматически:

Доступ к выборке at ... from origin 'http://localhost: 5000 ' заблокировано политикой CORS:

EDIT

I ' используя firebase serve --only hosting для проверки на локальном хосте.

Облачные функции развертываются с firebase deploy --only funtions

Я вызываю другие похожие облачные функции на том же сайте, у которых нет этой проблемы.

1 Ответ

1 голос
/ 30 марта 2020

Temp fix:

На странице функций облачной консоли выберите функцию для отображения информационной панели. На вкладке разрешений выберите ДОБАВИТЬ ЧЛЕНА. В поле новых членов введите allUsers. В раскрывающихся ролях выберите облачные функции, затем вызовите облачные функции и сохраните.

На самом деле имеет смысл иметь ограниченные разрешения для функции при ее первом создании, однако я привык к настройкам по умолчанию. присутствующие разрешения, так что это ошибка (или новая функция), которая определенно отбросила меня. Конечно, это не решает основную проблему, но надеюсь, что это поможет.

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