Javascript Firebase:在测试过程中,我得到;“未定义”不是一个函数;
这是我用过的代码:Javascript Firebase:在测试过程中,我得到;“未定义”不是一个函数;,javascript,angularjs,firebase,firebase-authentication,Javascript,Angularjs,Firebase,Firebase Authentication,这是我用过的代码: var cred = firebase.auth().EmailAuthProvider($scope.data.mail, $scope.data.pwd); firebase.auth().signInWithCredential(cred) .then(function() 在测试期间,我得到以下错误: TypeError:undefined不是函数(正在计算 'firebase.aut
var cred = firebase.auth().EmailAuthProvider($scope.data.mail, $scope.data.pwd);
firebase.auth().signInWithCredential(cred)
.then(function()
在测试期间,我得到以下错误:
TypeError:undefined不是函数(正在计算
'firebase.auth().EmailAuthProvider($scope.data.mail,
$scope.data.pwd)
那么我的代码怎么了?如何解决此问题?要通过电子邮件/密码登录用户,只需使用email和Password方法调用
登录即可
firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
然后,您可以侦听实时身份验证事件:
firebase.auth().onAuthStateChanged(function(user) {
if (user !== null) {
console.log('logged in!');
}
});
要通过电子邮件/密码登录用户,只需使用EmailandPassword方法调用登录即可
firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
然后,您可以侦听实时身份验证事件:
firebase.auth().onAuthStateChanged(function(user) {
if (user !== null) {
console.log('logged in!');
}
});
您正在将用户作为对象传入。这是两个独立的参数email
和password
,请看我的第一个代码示例。这解决了问题,非常感谢。但是auth事件被触发了很多次:为什么呢?它是一个实时auth事件。它为每个状态更改激发。当没有人登录并且用户
参数为空时,它将激发。当用户登录并且user
param是已填充的用户时,它也会激发。这就是if语句在回调中的原因。但在我的例子中,即使用户
不是null,事件仍然会发生。是的,这就是您想要的。当user
不为null时,表示登录事件已成功,并且您拥有当前经过身份验证的用户。您正在将该用户作为对象传入。这是两个独立的参数email
和password
,请看我的第一个代码示例。这解决了问题,非常感谢。但是auth事件被触发了很多次:为什么呢?它是一个实时auth事件。它为每个状态更改激发。当没有人登录并且用户
参数为空时,它将激发。当用户登录并且user
param是已填充的用户时,它也会激发。这就是if语句在回调中的原因。但在我的例子中,即使用户
不是null,事件仍然会发生。是的,这就是您想要的。当user
不为空时,表示登录事件已成功,并且您拥有当前经过身份验证的用户。