相关疑难解决方法(0)

从另一个云功能调用云功能

我正在使用云功能在免费火花层上调用另一个云功能.

是否有一种特殊的方式来调用另一个云功能?或者您只是使用标准的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))
})
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误

FetchError:请求 https:// us-central1-functions-****.cloudfunctions.net/validate failed,reason:getaddrinfo ENOTFOUND us-central1-functions - *****.cloudfunctions.net us-central1-functions -*****cloudfunctions.net:443

哪个听起来像firebase阻止连接,尽管它是谷歌拥有的,因此它不应该被锁定

Spark计划仅允许对Google拥有的服务的出站网络请求.

如何使用云功能调用另一个云功能?

javascript node.js firebase google-cloud-platform google-cloud-functions

27
推荐指数
4
解决办法
1万
查看次数

使用Firebase CLI shell测试可调用的云功能

我一直在尝试新的firebase可调用云功能,firebase functions:shell我继续得到以下错误

请求的内容类型不正确.

从功能收到的响应:400,{"error":{"status":"INVALID_ARGUMENT","message":"Bad Request"}}

这是我想在shell上调用此函数

myFunc.post(dataObject时)

我也尝试过这个

myFunc.post().表(dataObject时)

但后来我得到错误的编码(表单)错误.dataObject是有效的JSON.

更新:

我想我需要firebase serve用于本地仿真这些callable https功能.数据需要像这样在post请求中传递(注意它在data参数中的嵌套方式)

{
 "data":{
    "applicantId": "XycWNYxqGOhL94ocBl9eWQ6wxHn2",
    "openingId": "-L8kYvb_jza8bPNVENRN"
 }
}
Run Code Online (Sandbox Code Playgroud)

我无法想象的是如何通过REST客户端调用该函数时传递虚拟身份验证信息

node.js firebase google-cloud-functions firebase-cli

10
推荐指数
1
解决办法
3321
查看次数

调用 Firebase 的 `.onCall()` 方法时如何防止“错误请求”?

我刚刚升级到使用 Firebase Cloud Functions v1.x。根据这个答案

可调用函数与 HTTP 函数完全相同

考虑到这一点,我尝试转换我的 pre-1.x 模拟代码:

export const myHttpAction = functions.https.onRequest((req, res) => {
  try {
    const result = await myHttpActionWorker(req.body);
    return res.send({ status: 'OK' });
  } catch (err) {
    console.error(err);
    return res.status(500).send({ status: 'Server error' });
  }
});
Run Code Online (Sandbox Code Playgroud)

到以下几点:

export const myHttpAction = functions.https.onCall(async (data, context) => {
  console.log(context.auth);
  try {
    const result = await myHttpActionWorker(data);
    return { status: 'OK' };
  } catch (err) {
    console.error(err);
    return { status: 'Server error' };
  } …
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-functions

8
推荐指数
1
解决办法
6415
查看次数