如何在离子中实现Firebase云功能?

时间:2018-10-09 18:31:36

标签: typescript firebase ionic-framework firebase-authentication google-cloud-functions

我想用firebase函数实现一个函数,但是问题是在firebase面板中从来没有反映出正在执行某些操作。

这是我的函数代码,其想法是从具有特定ID的特定文档中获取所有数据。

exports.identifyusers=functions.https.onRequest((req, res) => {
    
    var db = admin.firestore();
    const key=req.query.key;
    
   return db.collection("usuariosdinny").doc(key).get().then(snapshot => {
   
    console.log("Correcto")

    }).catch(reason => {
        res.send(reason)
    })
});

这是我调用函数的部分:(此部分是一个身份验证过程,对用户我是正确的,我将获得ID并将该ID发送给函数)

this.afAuth.auth.signInWithEmailAndPassword(userst.email,userst.password)
        .then(res=> 
          {
            
          console.log(this.afAuth.auth.currentUser.uid);
          var tipo= firebase.functions().httpsCallable('identifyusers').arguments(this.afAuth.auth.currentUser.uid);
          console.log(tipo);

          if(tipo=="Cliente Dinny")
          {
            console.log("Es un cliente");
          }
          else{
            console.log("No tiene permiso para")
          }         
          }
        
          
          //this.navCtrl.push(TabsControllerPage)&& loader.dismiss())
        ).catch(reject =>alert.present() && loader.dismiss());
      }).catch(reject=>loader.dismiss());

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您的客户代码正在尝试调用“可调用”功能:

firebase.functions().httpsCallable('identifyusers')

但是您的函数定义为HTTP类型的函数:

exports.identifyusers=functions.https.onRequest(...)

如果要调用可调用函数,则必须编写一个可调用函数。 Read the documentation for callable functions了解如何执行此操作。

exports.identifyusers = functions.https.onCall(...)