从另一个云function调用云function
我正在使用云端函数在免费的Spark层次上调用另一个云端函数。
有没有特殊的方法来调用另一个云端function? 或者你只是使用标准的HTTP请求?
我曾尝试直接调用其他函数,如下所示:
exports.purchaseTicket = functions.https.onRequest((req, res) => { fetch('https://us-central1-functions-****.cloudfunctions.net/validate') .then(response => response.json()) .then(json => res.status(201).json(json)) })
但是我得到错误
FetchError:请求https:// us-central1-functions- ****。cloudfunctions.net/validate失败,原因:getaddrinfo ENOTFOUND us-central1-functions – *****。cloudfunctions.net us-central1-functions – ***** cloudfunctions.net:443
这听起来像firebase阻止连接,尽pipe它是一个谷歌拥有,因此它不应该被locking
Spark计划只允许向Google拥有的服务发送出站networking请求。
如何使用云端函数调用另一个云端函数?
您不需要通过全新的HTTPS调用来调用某些共享function。 您可以简单地将常见的代码抽象成一个常规的JavaScript函数,它被任何一个调用。 例如,你可以像这样修改模板helloWorld函数:
var functions = require('firebase-functions'); exports.helloWorld = functions.https.onRequest((request, response) => { common(response) }) exports.helloWorld2 = functions.https.onRequest((request, response) => { common(response) }) function common(response) { response.send("Hello from a regular old function!"); }
这两个函数将完成相同的事情,但具有不同的端点。