Node.js 在app.js中导入firebase后,我已初始化,但在控制器firebase.auth.createUserWithEmailAndPassword中不是函数
这是在我的app.js中导入firebase并初始化的Node.js 在app.js中导入firebase后,我已初始化,但在控制器firebase.auth.createUserWithEmailAndPassword中不是函数,node.js,firebase,firebase-authentication,webauthn,Node.js,Firebase,Firebase Authentication,Webauthn,这是在我的app.js中导入firebase并初始化的 const firebase = require('firebase'); firebase.initializeApp({ apiKey: ************, authDomain: ****************, databaseURL: **********", projectId: ********, storageBucket: *
const firebase = require('firebase');
firebase.initializeApp({
apiKey: ************,
authDomain: ****************,
databaseURL: **********",
projectId: ********,
storageBucket: ***********,
messagingSenderId: **********,
appId: *********,
measurementId: *********
});
app.use( (req, res, next) => {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
req.session.isLoggedIn = true;
} else {
req.session.isLoggedIn = false;
}
});
res.locals.isAuthed = req.session.isLoggedIn;
res.locals.csrfToken = req.csrfToken();
next();
});
但在auth.js控制器中,在导入firebase后,它将无法工作
const firebase = require('firebase');
exports.postSignup = (req, res, next) => {
const name = req.body.name;
const email = req.body.email;
const password = req.body.password;
const confirmPassword = req.body.password;
if(password === confirmPassword){
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(function(firebaseUser) {
const user = new User({
name: name,
email: email,
cart: {items: []}
});
return user.save();
})
.then(result => {
res.redirect('/login');
})
.catch(error => {
if (error.code == 'auth/email-already-in-use') {
//'auth/wrong-password'
req.flash('error', 'Already Registered');
return res.redirect('/signup');
}
});
}
发生此错误
类型错误:firebase.auth.createUserWithEmailAndPassword不是函数
在exports.postSignup(/media/rishav/Project Space/Projects/Web Development/Node Express/Controllers/auth.js:95:23)
你可能是想说:
firebase.auth().createUserWithEmailAndPassword(...)
注意“auth”后面的括号
但更大的问题是,您不应该在nodejs应用程序中使用Firebase web客户端库。相反,您应该使用,这是一个完全不同的模块,使用由服务帐户初始化的管理员权限运行。您可以使用它在您的后端代码中添加代码
firebase.auth().createUserWithEmailAndPassword(...)