1

我正在使用Firebase和Firebase的新功能云端函数构建Web应用程序。我创建了一个功能,如下使用节点模块请求,并请求承诺本机采用一个网址,并下载图像转换为64位编码的字符串:用于Firebase图像下载功能的云端函数错误

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; 
     }); 
    } 
}; 

顶部功能完美地工作在本地,但一旦运行在火力它给人的错误:

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) 

我打电话的火力AUTH触发功能,当用户在如下创建:

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); 
     }) 
} 
}); 

任何帮助将b非常感谢。

回答

0

不完全确定,但如果这是答案,但在阅读文档后,我阅读了他们的免费计划,该计划表示您无法提出任何出境请求。所以我想从一个Url获取图像会被视为一个出站请求。在我开始为他们的服务付款后,我会回来验证这是否是问题所在。