Firebase v2.4.2中auth()调用报错,基础认证示例无法运行如何解决?
解决Firebase v2.4.2中
signInWithEmailAndPassword调用报错的问题 嘿,我一眼就看出问题所在了——在Firebase v2.4.2这个老版本里,你不能直接用数据库引用myDB去调用auth()方法!这正是你收到Firebase.auth failed: Was called with 0 arguments. Expects at least 1.报错的原因。
在v2版本的Firebase里,认证功能和数据库引用是分开的,正确的操作方式是这样的:
第一步:获取正确的Auth实例
你需要从已有的数据库引用中获取对应的Auth对象,而不是直接在数据库引用上调用auth()。用getAuth()方法就能做到:// 从你的数据库引用获取Auth实例 var authInstance = myDB.getAuth();第二步:调用登录方法
拿到Auth实例后,再调用signInWithEmailAndPassword就没问题了:authInstance.signInWithEmailAndPassword(email, password).catch(function(error) { // 这里处理错误逻辑,比如打印错误信息 console.error("登录出错:", error.code, "-", error.message); // 也可以给用户展示友好提示,比如: // alert("登录失败:" + error.message); });另一种写法:直接创建Auth实例
如果你不想通过数据库引用获取,也可以直接用全局的FirebaseAuth构造函数创建实例:var authInstance = new FirebaseAuth(new Firebase('https://myDB.firebaseio.com')); authInstance.signInWithEmailAndPassword(email, password).catch(function(error) { // 错误处理逻辑 });
最后别忘了检查你的Firebase控制台,确保已经开启了邮箱/密码类型的登录认证,不然就算代码写对了,也会因为权限问题登录失败哦。
内容的提问来源于stack exchange,提问作者davy
相关产品推荐
相关产品推荐

