我在调用函数时遇到错误。 我正在使用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!");
});
答案 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)
我遇到了同样的问题,但是原因是我已经登录。我的错误是注册后,我在我的个人资料中并且试图登录。如果遇到此错误,请检查是否