You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AngularFire 1中检查当前用户是否为匿名用户?

在AngularFire 1中检查当前用户是否为匿名用户

我来帮你解决这个问题~你之前的代码主要问题在于没有正确获取AngularFire 1中的用户认证数据,而且判断匿名用户的方式也不对。下面是修正后的方案:

正确的实现代码

.controller('IndexCtrl', ['$scope', '$route', 'Auth', function($scope, $route, Auth) {
  // 检查用户是否为非匿名的已存在用户
  $scope.isExistent = function() {
    // 先获取当前的认证数据
    var authData = Auth.$getAuth();
    
    // 如果存在认证数据且是匿名用户,返回false
    if (authData && authData.auth.isAnonymous) {
      console.log("是匿名用户");
      return false;
    }
    
    // 无用户数据或非匿名用户时,返回true
    return true;
  };
}]);

关键说明

  • 在AngularFire 1中,你需要通过Auth.$getAuth()方法获取当前用户的认证数据对象,未登录时该方法返回null。
  • 匿名用户的标识存储在authData.auth.isAnonymous属性中,这是一个布尔值:匿名用户为true,常规登录用户(邮箱/密码、第三方登录等)为false。
  • 你之前的代码直接使用了未定义的firebaseUser变量,这是导致代码无法运行的核心原因,必须先通过Auth.$getAuth()拿到有效的认证数据再进行判断。

内容的提问来源于stack exchange,提问作者Alex Crowel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:42:42