尝试使用firebase对用户进行身份验证。使用firebase 2.xx开始我的应用程序,但即使在升级到Firebase 3.xx之后,投掷 错误“onAuthStateChanged不是函数”。
这是我的登录功能的样子 -
.controller('HomeCtrl', ['$scope','$location','CommonProp','$firebaseAuth', '$firebaseObject',function($scope,$location,CommonProp,$firebaseAuth,$firebaseObject) {
var firebaseObj = $firebaseObject(rootRef);
var loginObj = $firebaseAuth(firebaseObj);
$scope.SignIn = function($scope, user) {
event.preventDefault(); // To prevent form refresh
var username = user.email;
var password = user.password;
loginObj.$signInWithEmailAndPassword({
email: username,
password: password
})
.then(function(user) {
// Success callback
console.log('Authentication successful');
$location.path("/welcome");
CommonProp.setUser(user.password.email);
}, function(error) {
// Failure callback
console.log(error);
});
}
}]);
答案 0 :(得分:2)
您的问题是您将$firebaseObject
传递给$firebaseAuth()
。
因此,请确保您正在初始化[$firebaseAuth][1]
对象,如下所示,然后您的代码才能正常运行。
var loginObj = $firebaseAuth();
工作jsFiddle进行演示。
您可以在此处查看AngularFire2
的文档