Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用firebase云函数向非google服务器发送GET请求_Angular_Firebase_Google Cloud Functions - Fatal编程技术网

Angular 使用firebase云函数向非google服务器发送GET请求

Angular 使用firebase云函数向非google服务器发送GET请求,angular,firebase,google-cloud-functions,Angular,Firebase,Google Cloud Functions,我正在设置Firebase云函数,以便对非google服务进行API调用。对于测试,我将其用作API。我收到的响应是403错误 我已经研究了这方面的其他问题,但答案表明升级到付费firebase帐户可以解决问题。在升级到时,我修复了Firebase阻止传出http调用的问题,但现在我遇到了403错误,该错误由我尝试从中发出请求的任何API返回 从“firebase函数”导入*作为函数; const cors=require('cors')({origin:true}); export cons

我正在设置Firebase云函数,以便对非google服务进行API调用。对于测试,我将其用作API。我收到的响应是403错误

我已经研究了这方面的其他问题,但答案表明升级到付费firebase帐户可以解决问题。在升级到时,我修复了Firebase阻止传出http调用的问题,但现在我遇到了403错误,该错误由我尝试从中发出请求的任何API返回


从“firebase函数”导入*作为函数;
const cors=require('cors')({origin:true});
export const getJson=functions.https.onRequest(异步(req,res)=>{
cors(请求、恢复、异步()=>{
试一试{
let info=等待请求获取('https://jsonplaceholder.typicode.com/todos/1');
res.send(信息);
}捕获(错误){
res.status(500).send(`catch block hit:${error}`);
}
})
})
我希望API调用返回json对象:

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}
我收到的反馈是:

 "Failed to load resource: the server responded with a status of 403 ()"
注意:如果我从中进行了更改,我可以收到预期结果


非常感谢您的帮助。

req
是发送到服务器的请求,而
req.get()
用于获取该请求的标题。如果你想提出请求,你需要自己提出。您可以使用原始节点(例如,
https
package)或引入类似
axios
isomorphic fetch
的包来实现这一点。大概是这样的:

const functions=require('firebase-functions'))
常量axios=require('axios')
const cors=require('cors')({origin:true});
export const getJson=functions.https.onRequest(异步(req,res)=>{
cors(请求、恢复、异步()=>{
试一试{
let info=等待axios.get('https://jsonplaceholder.typicode.com/todos/1');
res.send(信息数据);
}捕获(错误){
res.status(500).send(`catch block hit:${error}`);
}
})
})

req
是发送到服务器的请求,而
req.get()
用于获取该请求的标题。如果你想提出请求,你需要自己提出。您可以使用原始节点(例如,
https
package)或引入类似
axios
isomorphic fetch
的包来实现这一点。大概是这样的:

const functions=require('firebase-functions'))
常量axios=require('axios')
const cors=require('cors')({origin:true});
export const getJson=functions.https.onRequest(异步(req,res)=>{
cors(请求、恢复、异步()=>{
试一试{
let info=等待axios.get('https://jsonplaceholder.typicode.com/todos/1');
res.send(信息数据);
}捕获(错误){
res.status(500).send(`catch block hit:${error}`);
}
})
})

可能重复的请参见此处和此处的一些类似答案可能重复的请参见此处和此处的一些类似答案