1

Ich baue eine Web-Anwendung mit Firebase und die neue Funktion Cloud-Funktionen für Firebase. Ich habe eine Funktion erstellt, die eine URL nimmt und laden das Bild in einen String 64-Bit codiert werden, wie unter der Knotenmodule Anfrage und Wunsch-Versprechen-native mit:Cloud-Funktionen für Firebase Bilddownload-Funktion Fehler

module.exports = { 
downloadImageFromUrl: function (url) { 
    var options = { 
     method: 'GET', 
     uri: url, 
     resolveWithFullResponse: true, 
     simple: false, 
     family: 4 
    }; 
    return rp.get(options) 
     .then(function (res) { 
      return "data:" + res.headers["content-type"] + ";base64," + new Buffer(res.body).toString('base64'); 
     }) 
     .catch(function (error) { 
      console.log("ERROR GETTING image", error); 
      return error; 
     }); 
    } 
}; 

Die Top-Funktion funktioniert perfekt läuft lokal aber einmal auf Feuerbasis gibt es den Fehler:

RequestError: Error: getaddrinfo EAI_AGAIN lh6.googleusercontent.com:443 
at new RequestError (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/errors.js:14:15) 
at Request.plumbing.callback (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:87:29) 
at Request.RP$callback [as _callback] (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:46:31) 
at self.callback (/user_code/node_modules/request/request.js:188:22) 
at emitOne (events.js:96:13) 
at Request.emit (events.js:188:7) 
at Request.onRequestError (/user_code/node_modules/request/request.js:884:8) 
at emitOne (events.js:96:13) 
at ClientRequest.emit (events.js:188:7) 
at TLSSocket.socketErrorListener (_http_client.js:310:9) 
at emitOne (events.js:96:13) 
at TLSSocket.emit (events.js:188:7) 
at connectErrorNT (net.js:1020:8) 
at _combinedTickCallback (internal/process/next_tick.js:74:11) 
at process._tickDomainCallback (internal/process/next_tick.js:122:9) 

ich die Funktion in der Feuerbasis auth Trigger aufrufen, wenn ein Benutzer, wie unten erstellt:

exports.createUser = functions.auth.user().onCreate(event => { 
    if (event.data.photoURL) { 
    utils.downloadImageFromUrl(event.data.photoURL) 
     .then(function(res){ 
      console.log("User Photo", res); 

     }) 
     .catch(function(error){ 
      console.log("Error", error); 
     }) 
} 
}); 

Jede Hilfe wäre b Sehr geschätzt.

Antwort

0

Noch nicht ganz sicher, ob dies die Antwort ist, aber nachdem ich die Dokumentation gelesen habe, lese ich ihren freien Plan, der besagt, dass man keine ausgehenden Anfragen machen kann. Ich denke, ein Bild aus einer URL wird als ausgehende Anfrage gezählt. Nachdem ich angefangen habe, für ihren Dienst zu bezahlen, werde ich zurückkommen, um zu überprüfen, ob das das Problem war.

Verwandte Themen