[英]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.