gpt4 book ai didi

javascript - Firebase 多次登录用户

转载 作者:行者123 更新时间:2023-11-30 17:23:20 25 4
gpt4 key购买 nike

Show of weird behavior

每次我点击登录按钮时都会发生这种情况。

首次登录:回调显示2次登录

第一次登出

第二次登录:回调显示4次登录

第二次退出

第三次登录:回调现在显示连续 5 次登录

等等

这是我的登录函数:

$scope.userLogin = function(user){
$scope.userLoginEmail = user.email;
$scope.userLoginPassword = user.password;

$scope.authUser().login('password', {
email: $scope.userLoginEmail,
password: $scope.userLoginPassword
});
$scope.loginModalHide();
user.email = '';
user.password = '';
};

我的问题很简单。为什么会这样?有时即使我点击注销,也会自动调用登录。

最佳答案

从您的 AuthCtrl 来看,您似乎正在使用没有 AngularFire 绑定(bind)的 FirebaseSimpleLogin。您将以这种方式遇到 $digest 循环的问题。使用 AngularFire 的好处之一是它可以很好地处理 $digest 循环,因此我们不必担心应用范围或设置超时。

AngularFire 提供了一个$firebaseSimpleLogin 绑定(bind)。当用户登录和注销时,将在 $rootScope 上触发一个事件。

app.controller('AuthCtrl', function($scope, $rootScope, $firebaseSimpleLogin) {
var simpleLogin = $firebaseSimpleLogin(new Firebase('<your-firebase>'));

$scope.user = {
email: '',
password: ''
};

$scope.login = function() {
simpleLogin.$login('password', {
email: user.email,
password: user.password
});
};

$rootScope.$on('$firebaseSimpleLogin:login', function(e, user) {
// handler post login event
});

$rootScope.$on('$firebaseSimpleLogin:logout', function(e, user) {
// handler post logout event
});

});

我通常将 $firebaseSimpleLogin 绑定(bind)封装在工厂中。您可以在此处查看有关 Plunker 的演示示例:

Plunker Demo

关于javascript - Firebase 多次登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com