簡體   English   中英

獲取與特定UID關聯的所有Firebase數據

[英]Get all firebase data associated with a particular UID

我的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();

希望這可以幫助。 如果這不是您所需要的,那么如果數據得到擴展,我可能會再次做出更好的答復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM