Облачные функции для Firebase - getaddrinfo ENOTFOUND

Попытка сделать запрос к API Paypal с помощью PayPal-node-SDK

exports.requestPayment = functions.https.onRequest((req, res) => {
    return new Promise(function (fullfilled, rejected) {
        paypal.payment.create(create_payment_json, {}, function (error, payment) {
            if (error) {
                rejected(error);
            } else {
                console.log("Create Payment Response");
                console.log(payment);
                res.status(200).send(JSON.stringify({
                    paymentID: payment.id
                })).end();
                fullfilled(payment);
            }
        });
     });
});

но я постоянно получаю сообщение об ошибке:

Error: getaddrinfo ENOTFOUND api.sandbox.paypal.com api.sandbox.paypal.com:443
    at errnoException (dns.js:28:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

Вещи, которые я пробовал:

  • Выполнение запроса на совершенно другой хост, ENOTFOUND
  • Завершение запроса с помощью cors(req,res, ()=>{...})
  • Предоставление https:// хосту

В чем проблема?

Ответы

Ответ 1

Вам нужно будет заплатить платный внешний запрос API.

План Firebase Blaze (платите, как вы идете) имеет свободный выделение для облачных функций. https://firebase.google.com/pricing/

Ответ 2

я решил это, выполнив следующие несколько шагов. снова запустите firebase deploy после ошибки

Ответ 3

Вам необходимо включить служебную учетную запись для инициализации администратора. это исправило ту же проблему для меня