Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase:在测试过程中,我得到;“未定义”不是一个函数;_Javascript_Angularjs_Firebase_Firebase Authentication - Fatal编程技术网

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
不为空时,表示登录事件已成功,并且您拥有当前经过身份验证的用户。