我正在尝试使用使用angularfire(angularjs firebase)的lynda.com上的教程,除了它使用$ firebase。$ asObject之类的东西,现在已经过时了。我试着查看文档以及其他一些SOF问题,我终于发现了一些有用的东西,但它看起来很丑陋,看起来非常低效,因为我发现它工作的唯一方法就是遍历所有的对象。从数据库返回的数组。该数组包含所有已注册的用户。这就是我如何使用它,但有人可以告诉我正确的方法,因为这似乎不应该是它。
var ref = new Firebase(FIREBASE_URL);
var auth = firebaseAuth(ref);
auth.$onAuth(function(authUser){
if(authUser){
var ref = new Firebase(FIREBASE_URL + 'users/');
var stuff = firebaseArray(ref);
ref.on('value', function(snapshot) {
if(snapshot.val() !== null) {
var keys = Object.keys(snapshot.val());
for(var key in keys){
if(keys.hasOwnProperty(key)){
if(authUser.uid === snapshot.val()[keys[key]].registeredUser){
rootScope.currentUser = snapshot.val()[keys[key]];
}
}
}
} else {
console.log('location does not exist');
}
});
var user = firebaseObject(ref);
//console.log(user);
rootScope.currentUser = user;
} else {
rootScope.currentUser = '';
}
});
这是我的firebase forge的样子:
提前谢谢!
答案 0 :(得分:0)
存储https://www.firebase.com/docs/web/guide/user-auth.html#section-storing中建议的用户数据通常很有帮助。
您需要使用唯一ID作为用户对象的键,因此您不必遍历所有用户来搜索它。唯一ID是身份验证数据的一部分,请参阅https://www.firebase.com/docs/web/guide/user-auth.html#section-monitoring-authentication)。