在AngularFire种子中,这种情况发生在运行定义中:
$rootScope.auth = loginService.init('/login');
然后在登录服务定义中:
init: function() {
return auth = $firebaseSimpleLogin(firebaseRef());
},
firebaseRef是一个看起来像这样的服务:
return function(path) {
return new Firebase(pathRef([FBURL].concat(Array.prototype.slice.call(arguments))));
}
FBURL是一个常量:
.constant('FBURL', 'https://INSTANCE.firebaseio.com')
所以对我来说,"/login"似乎是firebase引用中路径的一部分。但如果是这样的话,难道不应该这样传下去吗?
init: function(path) {
return auth = $firebaseSimpleLogin(firebaseRef(path));
},
所以问题是:顶部的"/login"参数会发生什么?对我来说,它看起来像是在init函数中"丢失"了。但由于这是由Firebase的人制作的,我相信它背后有一个意义,这里有一些我不理解的东西。。。
/login
参数是旧版本RouteSecurity的工件,不再使用。
它在config.js.中被loginRedirectPath
取代
path
与Firebase中的身份验证无关,因为无论在对$firebaseSimpleLogin的引用中传递什么子路径,都会针对整个实例进行身份验证。