Firestore云功能http onRequest'POST'

时间:2019-03-06 13:57:33

标签: javascript firebase xmlhttprequest google-cloud-firestore google-cloud-functions

我已将我的firestore云功能设置为从请求中接收对象,但是我得到了一个空的主体,我从一个Form中获取了他的数据,然后将其传递给一个变量,该变量要在请求中发送给我Cloud Firestore函数,但是我得到了一个空的主体,即使运行了Cloud函数,我也可以看到结果之间的日志。 我的侧面:

 onSubmit(form:NgForm){
    let data = Object.assign({},form.value);
    // const httpOptions = {
    //   headers: new HttpHeaders({
    //     'Authorization': 'secret-key'
    //   }),
    //   body: 'test'
    //  };
     const dataUser = {
       displayName:data.displayName,
       email: data.email,
      password:data.password
     }


    console.log(data);
     this.http.post(this.endpoint,dataUser).subscribe(res => console.log(res));
 }

我的节点端:

   const functions  = require('firebase-functions');

const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.AddUser = functions.https.onRequest((req, res) =>{

    console.log("B123oo");
     console.log(req.body);
     console.log("Boo");
    // admin.auth().createUser({
    //     email: body.email,
    //     emailVerified: false,
    //     password: body.password,
    //     displayName: body.displayName,
    //     disabled: false
    // }).then(function(userRecord){
    //     console.log("OK !!! UID: ",userRecord.uid);
    // });

 });

结果日志:

info: User function triggered, starting execution
B123oo
info: {}
Boo

1 个答案:

答案 0 :(得分:0)

要使一个值显示为req.body,实际上并没有为body赋值。正文随随请求一起发送的数据一起填充。该主体最终将成为您的第二个值dataUser。我注意到您没有传递您的httpOptions,通常是传递给post()的第三个参数。最后一部分可能是您的问题。 this.http.post(this.endpoint,dataUser,httpOptions)

良好的资源:https://itnext.io/working-with-firebase-functions-http-request-22fd1ab644d3