【问题标题】:how to get data from a http request with firebase cloud functions?如何使用 Firebase 云功能从 http 请求中获取数据?
【发布时间】:2018-10-13 21:11:17
【问题描述】:

我创建了一个 firebase 函数,在云中存在这些东西,在代码中我返回了这些东西,但是当我尝试在 http 请求中获取数据时不收取任何费用。 这是我在 firebase 函数中的函数:

exports.autentifyuser = functions.https.onRequest((req, res) => {
    var stuff = [];
    var db = admin.firestore();
    const key=req.query.ids;

    db.collection("/usuariosdinny/").where("key","==",key).get().then(snapshot => {

        snapshot.forEach(doc => {
            var newelement = {
                "id": doc.id,
                "nombre": doc.data().nombre,
                "foto": doc.data().foto,
                "descripcion":doc.data().descripcion,
                "edad":doc.data().edad,
                "key":doc.data().key,
                "sexo":doc.data().sexo,
                "telefono":doc.data().telefono,
                "tipo":doc.data().tipo
            }
            stuff = stuff.concat(newelement);
        });
        console.log(stuff);
        res.send(stuff);
        return stuff;
    }).catch(reason => {
        res.send(reason);

        console.log(reason);
        return reason;
    })
});

这是电话:

let params: URLSearchParams = new URLSearchParams();
  params.set('ids',this.ids);
  let requestOptions = new RequestOptions();
  requestOptions.search = params;
  this.http.get('https://us-central1-dinnyud-9b9c8.cloudfunctions.net/autentifyuser',requestOptions).toPromise().then(response=>console.log(response.json()) && this.navCtrl.push(TabsControllerPage) && loader.dismiss())
  .catch(error=>alert2.present()&& loader.dismiss());

我需要response.json() 并获取“Tipo”数据。感谢您的帮助。

【问题讨论】:

    标签: firebase ionic-framework google-cloud-firestore httprequest


    【解决方案1】:

    由于从数据库中获取数据的调用是异步进行的,因此您需要告诉 Cloud Functions 您还没有完成。否则它可能会在最后一个 } 执行后立即终止您的函数,这远在从 Firestore 检索数据之前。

    要告诉 Cloud Functions 这件事,您必须返回一个承诺。幸运的是,这很容易,因为 get 已经返回了一个承诺。

    return db.collection("/usuariosdinny/").where("key","==",key).get().then(snapshot => {
    
        snapshot.forEach(doc => {
    

    【讨论】:

    猜你喜欢
    • 2019-10-17
    • 1970-01-01
    • 2020-07-26
    • 2018-06-30
    • 2020-02-28
    • 2018-08-20
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多