Javascript 获取与特定UID关联的所有firebase数据
我有一个比较复杂的Firebase设置,我想知道是否有可能在一次调用中获得与特定用户相关的所有数据 我的Firebase架构如下图所示: 到目前为止,我已经做了类似的事情,但我认为一定有更好的方法,比如使用UID来获取数据,而不是手动解析整个db对象Javascript 获取与特定UID关联的所有firebase数据,javascript,firebase,firebase-realtime-database,angularfire2,Javascript,Firebase,Firebase Realtime Database,Angularfire2,我有一个比较复杂的Firebase设置,我想知道是否有可能在一次调用中获得与特定用户相关的所有数据 我的Firebase架构如下图所示: 到目前为止,我已经做了类似的事情,但我认为一定有更好的方法,比如使用UID来获取数据,而不是手动解析整个db对象 export class AdminComponent { items: FirebaseListObservable<any[]>; private xyz: string; private firebaseList: F
export class AdminComponent {
items: FirebaseListObservable<any[]>;
private xyz: string;
private firebaseList: FirebaseListObservable<any[]>;
constructor(db: AngularFireDatabase, private router: Router, private route: ActivatedRoute) {
this.firebaseList = db.list('/');
this.items = this.firebaseList.subscribe(items => {
const dbAnalytics = items[0];
const dbBookings = items[1];
const dbClasses = items[2];
const dbLabs = items[3];
const dbMachines = items[4];
const dbPostLabs = items[5];
const dbPreLabs = items[6];
const dbUsers = items[7];
for (const key in dbUsers) {
if (dbUsers.hasOwnProperty(key)) {
const userData = dbUsers[key];
const userEid = userData['eid'];
const userFullName = userData['name'];
console.log(userEid, userFullName);
}
}
for (const key in dbPostLabs) {
if (dbPostLabs.hasOwnProperty(key)) {
const postLabData = dbPostLabs[key];
// Figure out why these objects are weird
}
}
});
}
}
非常感谢您的所有建议。我假设您只想从数据库中获取一个对象,而不是获取所有对象,这样您就可以这样做了。。此外,如果我能看到扩展后的数据是什么样子的话,回答这个问题就容易多了 如果已经知道对象的uid,可以执行以下操作
this.db.database.ref(`labs/${uid}`).once('value')
或者如果您只需要其中一个对象的整个列表
this.db.list('labs/', ref => ref.orderByChild(<object key>).equalTo(<desired key value)).valueChanges();
希望这有帮助。如果这不是您所需要的,如果数据得到扩展,我可能会再次给出更好的答案。对不起,我的问题不够清楚。我指的是用户,不是UID。我想问的是可能的吗?好的,你是说你想要一个特定的用户对象,还是所有其他有相应用户的对象。i、 e如果你的实验室有一个用户id或用户对象附加到它?所有其他对象都有一个对应的用户,所以是后者,但我想使用该用户id或对象获取所有这些对象。有可能吗?好的,我明白你的意思。老实说,我不确定你们是否能在db调用中完成所有操作,这更像是我第一次用实验室和uid做的手势,你们需要为你们想要的每个对象做一个。我不确定是否有一种方法可以在一次调用中获得所有相应的对象,只要该对象附加了userId或username