Firebase身份验证(不是函数,不是构造函数)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase身份验证(不是函数,不是构造函数)相关的知识,希望对你有一定的参考价值。
我不知道出了什么问题。我正在使用Node.js并尝试使用电子邮件/密码和Google身份验证登录。我在Firebase控制台中启用了所有这些功能。
npm Firebase版本 - 3.1.0
部分代码:
var firebase = require('firebase');
var config = {
apiKey: "AIzaSyAH27JhfgCQfGmoGTdv_VaGIaX4P-qAs_A",
authDomain: "pgs-intern.firebaseapp.com",
databaseURL: "https://pgs-intern.firebaseio.com",
storageBucket: "pgs-intern.appspot.com",
};
firebase.initializeApp(config);
app.post('/login', function(req, res) {
var auth = firebase.auth();
firebase.auth().signInWithEmailAndPassword(req.body.login, req.body.password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
}
错误:firebase.auth(...)。signInWithLoginAndPassword不是函数或错误:firebase.auth(...)。当我写的时,GoogleAuthProviders不是构造函数
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
我刚刚完成了文档中的内容。
你的第一个错误可能来自某个地方的拼写错误。
firebase.auth(...).signInWithLoginAndPassword is not a function
注意它是signInWithLoginAndPassword,该函数名为signInWithEmailAndPassword。在发布的代码中它被正确使用,所以它可能在其他地方。
firebase.auth(...).GoogleAuthProviders is not a constructor
你还没有在你使用它的地方发布代码,但我认为当你创建你在provider
中使用的firebase.auth().signInWithPopup(provider)
变量时会发生这个错误
那条线应该是var provider = new firebase.auth.GoogleAuthProvider();
基于错误消息,我想你可能正在做new firebase.auth().GoogleAuthProvider();
在auth之后省略括号,如果是这样的话。
不要通过Auth()函数调用GoogleAuthProvider。
根据文档,您必须创建一个GoogleAuthProvider实例。
let provider = new firebase.auth.GoogleAuthProvider()
请检查以下链接https://firebase.google.com/docs/auth/web/google-signin
没有办法使用电子邮件+密码或其中一个社交提供商将您的node.js应用程序签名到firebase。
服务器端进程使用所谓的服务帐户登录Firebase。关键区别在于您初始化应用程序的方式:
var admin = require('firebase-admin');
admin.initializeApp({
serviceAccount: "path/to/serviceAccountCredentials.json",
databaseURL: "https://databaseName.firebaseio.com"
});
请参阅Firebase documentation for details on setting up a server-side process的此页面。
以上是关于Firebase身份验证(不是函数,不是构造函数)的主要内容,如果未能解决你的问题,请参考以下文章
Vue Firebase firebase/auth 不工作,但 firebase/firestore 工作正常。 “身份验证不是函数”
AuthProvider在使用firebase auth时不是构造函数,VueJS Webpack
没有身份验证的 Firebase 初始化 - firebase.auth 不是函数