角度< - > firebase函数不通过GET请求发回数据

时间:2018-03-21 21:19:45

标签: angular httprequest google-cloud-functions

在我的角色项目中我有:

this.htpClien.get(this.baseUrsl+"createEmployee",{params:{email:"sdfsd@dffdf.com",password:"sdafw22"}}).subscribe(sub=>{

  console.log("respons"+ sub)},error=>{console.log('error')}

并在我的firebase函数中:

exports.createEmployee = functions.https.onRequest((request, response)=>{

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

    if (request.method === 'GET') {
        let email = request.query.email;
        let password = request.query.password;

            admin.auth().createUser({
                email: email,
                emailVerified: false,
                password: password,
                disabled: false
            }).then(succes => {
                response.send(succes.uid)

            }).catch(er => {
                response.send(er)
            })
    }
});

用户已创建,但我无法使用userID将响应返回到我的角度项目,而我得到的是在角度请求中调用的错误(“console.log('error'))。

我试着用角度来表达我的要求:

headers = new HttpHeaders();
this.headers.append('Allow-Control-Allow-Origin', '*');
this.headers.append('Content-Type', 'application/x-www-form-urlencoded');

然后在请求中添加“标题”:

this.htpClien.get(this.baseUrsl+"createEmployee",{params:{email:"sdfsd@dffdf.com",password:"sdafw22"},headers:this.headers})

但是这并不是全部工作,甚至连用户都没有创建 - 认为它是“Access-Control-Allow-Origin”的问题,但我在stackoverflow上看到了关于该主题的所有答案,但仍然不能想出这个:S

1 个答案:

答案 0 :(得分:0)

我终于想出了一个,因为任何有同样问题的人都必须指定响应类型所以在我的情况下它应该是这样的:

this.htpClien.get(this.baseUrsl+"createEmployee",{params:{email:"sdfsd@dffdf.com",password:"sdafw22"},responseType: 'text'})