web-dev-qa-db-fra.com

Fonctions de cloud pour Firebase - getaddrinfo ENOTFOUND

Essayer de faire une demande à l'API de Paypal en utilisant 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);
            }
        });
     });
});

mais je reçois constamment une erreur:

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)

Choses que j'ai essayées:

  1. Faire une demande à un hôte totalement différent, toujours ENOTFOUND
  2. Enveloppant la requête avec cors(req,res, ()=>{...})
  3. Ajouter au préalable https:// À l'hôte

Quel est le problème?

44
user47376

Vous devez disposer d'un forfait payant pour effectuer des demandes d'API externes.

Le plan Blaze de Firebase (paiement au fur et à mesure) propose une attribution gratuite pour les fonctions cloud. https://firebase.google.com/pricing/

105
James Daniels

Vous devez inclure un compte de service à l'initialisation de l'administrateur. cela a résolu le même problème pour moi

0
EngrEric