firebase.auth(...)。signInWithEmailAndPassword不是Cloud Function中的函数

时间:2018-02-09 13:15:31

标签: javascript firebase google-cloud-functions firebase-admin

我在调用函数时遇到错误。 我正在使用LsignInWithEmailAndPassword方法。任何特殊配置是否需要?

const functions = require('firebase-functions');
    const firebase=require('firebase-admin');
    firebase.initializeApp(functions.config().firebase);


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


               var data = {
      email    : 'demo@gmail.com',
      password : 'demo123'
    };
    var auth = null;
    firebase
      .auth()
      .signInWithEmailAndPassword(data.email, data.password)
      .then( function(user){
        response.send("Authenticated successfully with payload");
      //  console.log("Authenticated successfully with payload:", user);
        auth = user;
      })
      .catch(function(error){
        response.send("Login Failed!");
      //  console.log("Login Failed!", error);
      });
            //  response.send("Hello from Firebase!");
     });

3 个答案:

答案 0 :(得分:2)

当您从Admin SDK调用firebase.auth()时,您将获得Auth类型的对象。正如您在API文档中看到的那样,它没有名为signInWithEmailAndPassword的方法。

您似乎正在将javascript客户端SDK与Admin SDK混合在一起。没有理由在云功能中使用客户端SDK。它应该只在浏览器中使用。

答案 1 :(得分:0)

signInWithEmailAndPassword仅适用于浏览器环境。要访问发出特定请求的人,您可以使用firebase.auth().getToken获取JWT令牌,并将其发送到您的云功能端点。然后,您可以致电verifyIdToken以获取提出请求的人uid

答案 2 :(得分:-1)

我遇到了同样的问题,但是原因是我已经登录。我的错误是注册后,我在我的个人资料中并且试图登录。如果遇到此错误,请检查是否