Angularjs 获取Firebase上Auth的对象或数组值
我使用angularfire 1.1.1来存储我的应用程序对象,每个对象都会创建相关的索引。因此,当创建一个用户时,该用户将被添加到“users”表中,然后用户索引表将使用UID进行键控,并指向实际用户的id 调用主状态时,我运行checkAuth方法查看用户是否已登录。如果是这样,那么我想分配$rootScope.auth={id:userID,role:role}等等 该函数在我的登录方法中非常有效,但我不知道如何从我的checkAuth方法中获取值。我在$firebaseObject和$firebaseArray上都尝试了$value,也尝试了用[0]调用它们,因为表中每个用户的uid只有一个id值 邋遢的正则表达式用于将分号从SimpleLogin:47更改为SimpleLogin-47,以便对索引进行键控 以下是不起作用的代码:Angularjs 获取Firebase上Auth的对象或数组值,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我使用angularfire 1.1.1来存储我的应用程序对象,每个对象都会创建相关的索引。因此,当创建一个用户时,该用户将被添加到“users”表中,然后用户索引表将使用UID进行键控,并指向实际用户的id 调用主状态时,我运行checkAuth方法查看用户是否已登录。如果是这样,那么我想分配$rootScope.auth={id:userID,role:role}等等 该函数在我的登录方法中非常有效,但我不知道如何从我的checkAuth方法中获取值。我在$firebaseObject和$f
function authCheck(){
var getAuth = $firebaseAuth(Data.ref);
console.log('signed in as', getAuth.$getAuth().uid);
var uid = getAuth.$getAuth().uid.toLowerCase().replace(/'+/g, '').replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "-").replace(/^-+|-+$/g, '');
var userIndexRef = Data.ref.child('index/users/uid/'+uid);
var userIndexArray = $firebaseArray(userIndexRef);
var userIndexObject = $firebaseObject(userIndexRef);
console.log(userIndexArray, userIndexObject);
var realId = '';
angular.forEach(userIndexObject, function(key, id){
realId = id;
$rootScope.auth = realId;
return realId;
});
}
以下是有效的登录代码:
function login(email, pass) {
ref.authWithPassword({email:email,password:pass}, function(error, authData){
if (error) {
console.log(error);
} else {
console.log('signed in as',authData.uid);
var uid = authData.uid.toLowerCase().replace(/'+/g, '').replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "-").replace(/^-+|-+$/g, '');
angular.forEach(Data.dataObject.index.users.uid[uid],function(id, key){
$rootScope.role = Data.dataObject.users[id].role;
$rootScope.auth = {authData:authData, id:id, role:Data.dataObject.users[id].role};
});
}
});
}
如果有人看到我把事情搞砸了,我很乐意知道。这是回购协议,如果有帮助的话。多谢各位 Mods,如果有误导性的话,请随意重写我的问题。如果你真的坚持把属于服务的东西放到$rootScope中,那么只使用$firebaseAuthData.ref.$onAuthfunctionauthData{$rootScope.authData=authData;}有什么错?谢谢@Kato。这对登录很有效。我的情况是,当用户已登录,但刷新页面时,会重新加载状态,因此会检查auth当前是否可用如果刷新页面,$onAuth仍然是正确答案。它仍然需要访问服务器,并且在完成时仍将使用当前的身份验证状态进行更新。