ionic/angularfire 上处理 $onAuth 维护的最佳方法

Best way to deal with $onAuth maintenance on ionic/angularfire

我正在使用 ionic 和 angularfire 构建应用程序,但我不理解使用 $onAuth 维护会话背后的逻辑。我知道这个功能是如何工作的,但我不知道在哪里使用它..

我是否需要在每个控制器中注入 $onAuth 并验证 authData 是否为空(然后使用 $unauth 并正确重定向用户)或者有一种方法可以实现此功能($onAuth ) 集中在另一个文件中并让 ir listining 并且只有在 authData 为 null 时才执行某些操作?

如果问题不清楚,欢迎随时提问!

在此先感谢所有提供帮助的人! :)

您可以通过多种方式实现目标。最糟糕的是采用您描述的方式并将其安装在每个控制器中,因为您应该保留您的代码 DRY。您的目标显然是只为 $onAuth 编写一次方法。

一个简单的方法是在 dom 的最顶部实例化一个 MainController(比如最外层的 html 元素,例如 body 标签) .然后,您可以使用您的子控制器访问来自父控制器的数据,如解释的那样。 here。您可以在主控制器中注入 $onAuth 服务,让它执行您的逻辑,然后您可以使用 authData 从其所有子控制器访问主控制器的 $scope

一个更可重用的部分是编写一个您可以从所有控制器访问的服务。在这里找到很棒的教程。

最简单的方法是让模块的 run block and save it in your $rootScope that can also be accessed later from all controllers. Here 中的 $onAuth 是一个验证示例。你会写

angular.module('your-module').run(function($rootScope, Auth) {
  $rootScope.auth = Auth;
  $rootScope.auth.$onAuth(function(authData) {
    $rootScope.authData = authData;
    //do anything you want here, e.g. redirect
  });
}