Authentication 如何在firebaseAuth成功时启动地理定位
我使用$firebaseAuth来控制我的应用程序的登录部分,我想在用户进行身份验证时启动一个地理位置 当我使用下面的代码时,在身份验证之前开始地理定位:Authentication 如何在firebaseAuth成功时启动地理定位,authentication,geolocation,angularfire,Authentication,Geolocation,Angularfire,我使用$firebaseAuth来控制我的应用程序的登录部分,我想在用户进行身份验证时启动一个地理位置 当我使用下面的代码时,在身份验证之前开始地理定位: .run(function($ionicPlatform, $rootScope, $location, Auth, $ionicLoading, $cordovaGeolocation, geoLocation, defautLocation) { $ionicPlatform.ready(function() {
.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意味着我的功能必须在身份验证期间始终处于活动状态
因此,我的问题是,如何在认证成功之后直到未经认证之前执行我的地理定位功能
我对棱角和火箭筒都是新手,一点也不奇怪
Thx很多,您可能需要在Auth.$onAuth中使用它,即您已经拥有console.loglogging的地方,authData.uid;你说得对。。我真丢脸。。我现在的问题是在未经授权的情况下停止监视Position,我尝试在注销功能中使用clearWatch,但仍在监视。。谢谢!该代码将进入$onAuth函数的else分支。是的,但当我第一次身份验证,然后取消身份验证时,watchPosition停止,我到达存储用户名和密码的登录页面,我再次身份验证,watchPosition再次点火,然后我再次取消身份验证,watchPosition不停止,而我正在取消身份验证。。它只工作一次而不是两次,我必须在第一次未经授权后刷新我的页面。谢谢你的帮助,我最后的评论可能涉及其他问题,所以我提出了一个新问题。