Javascript 获取与特定UID关联的所有firebase数据

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

我有一个比较复杂的Firebase设置,我想知道是否有可能在一次调用中获得与特定用户相关的所有数据

我的Firebase架构如下图所示:

到目前为止,我已经做了类似的事情,但我认为一定有更好的方法,比如使用UID来获取数据,而不是手动解析整个db对象

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