如何在firebaseAuth成功开始地理定位

时间:2015-05-19 14:23:15

标签: authentication geolocation angularfire

我正在使用$ firebaseAuth来控制我的应用程序的登录部分,并且我希望在用户进行身份验证时启动地理位置。

使用以下代码时,地理位置在身份验证之前启动:

 .run(function($ionicPlatform, $rootScope, $location, Auth, $ionicLoading, $cordovaGeolocation, geoLocation, defautLocation) {
   $ionicPlatform.ready(function() {

       if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
             cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        }
     if (window.StatusBar) {
       // org.apache.cordova.statusbar required
      StatusBar.styleLightContent();
     }

     $rootScope.firebaseUrl = firebaseUrl;
     $rootScope.displayName = null;

     Auth.$onAuth(function (authData) { 
        if (authData) {
            console.log("Logged in as:", authData.uid);
        } else {
            console.log("Logged out");
            $ionicLoading.hide();
            $location.path('/login');
        }
    })

    $cordovaGeolocation
      .getCurrentPosition()
      .then(function (position) {
         ...
      }, function(err) {
         ...
             });
     $cordovaGeolocation.watchPosition({
         frequency: 1000,
         timeout: 3000,
         enableHighAccuracy: false
    }).then(function () {
    }, function (err) {
       ...
    });

    $rootScope.logout = function () {
        console.log("Logging out from the app");
        $ionicLoading.show({
            template: 'Logging Out...'
        });
        Auth.$unauth();
}

...

我尝试换行$ cordovaGeolocation:

 Auth.$requireAuth().then(function(authData) {
  if (authData) {
    $cordovaGeolocation
      .getCurrentPosition()
      .then(function (position) {
         ...
      }, function(err){
         ...
     });
     $cordovaGeolocation.watchPosition({
         frequency: 1000,
         timeout: 3000,
         enableHighAccuracy: false
    }).then(function () {
    }, function (err) {
       ...
    });
  }else{
     ...
  }
  });

但是当用户登录时没有启动地理位置,我需要重新加载。

watchPosition意味着我的功能必须在身份验证期间始终处于活动状态。

所以我的问题是,如何在身份验证成功之后执行我的地理定位功能,直到unAuth()?

(我是Angular和Firebase的新手,毫不奇怪)

很多,

0 个答案:

没有答案