Angularjs Firebase Simple Login$logout函数未将用户属性设置为null

Angularjs Firebase Simple Login$logout函数未将用户属性设置为null,angularjs,firebase,angularfire,firebase-security,Angularjs,Firebase,Angularfire,Firebase Security,根据$firebaseSimpleLogin的$logout方法文档,API明确指出 调用logout时,将触发$firebaseSimpleLogin:logout事件,并且对象上的user>属性将设置为null 然而,它似乎对我不起作用 以下是我的代码片段: var firebaseUrl = 'https://MYURL.firebaseio.com/'; var firebaseObject = new Firebase(firebaseUrl); $rootScope.f

根据$firebaseSimpleLogin的$logout方法文档,API明确指出

调用logout时,将触发$firebaseSimpleLogin:logout事件,并且对象上的user>属性将设置为null

然而,它似乎对我不起作用

以下是我的代码片段:

  var firebaseUrl = 'https://MYURL.firebaseio.com/';
  var firebaseObject = new Firebase(firebaseUrl);

  $rootScope.firebaseLoginObject = $firebaseSimpleLogin(firebaseObject, function(error, user) {
    if (error) {
      console.log(error);
    } else if (user) {
      console.log('User ID: ' + user.uid + ', Provider: ' + user.provider);
    } else {
      console.log('User is logged out');
      // user is logged out
    }
  });

  // Function for logging out.
  $scope.logout = function() {
    $rootScope.firebaseLoginObject.$logout();
    console.log('i logged out successfully');
    console.log($rootScope.firebaseLoginObject);
    console.log($rootScope.firebaseLoginObject.user);
    console.log($rootScope.user);
    $location.path('/');
  };

单击“ng click=logout()”后在控制台中获得的输出显示$rootScope.firebaseLoginObject未设置为null。

问题在于$scope.logout。您的console.log语句是在$logout函数完成其工作之前执行的

  $scope.logout = function() {
    $rootScope.firebaseLoginObject.$logout();

    // This is not necessarily true. At this point, you may still be
    // logged in since $logout can take an unknown amount of time to finish.

    console.log('i logged out successfully');
    console.log($rootScope.firebaseLoginObject);
    console.log($rootScope.firebaseLoginObject.user);
    console.log($rootScope.user);
    $location.path('/');
  };
要确保在$logout完成后记录firebaseLoginObject的状态,请等待注销事件在$rootScope上广播

  $rootScope.$on("$firebaseSimpleLogin:logout", function(event) {
    // Log values here.
  });