简体   繁体   English

如何使用 Angular 在 Firebase 中仅获取选定的数据列表

[英]how to get only selected list of data in Firebase with Angular

Suppose I have two branch in Firebase (eg :- Branch A and Branch B).假设我在 Firebase 中有两个分支(例如:-分支 A 和分支 B)。

Branch A :
 branchA1 :
   field1 : "Hello"
   field2 : "Hello"
branchA2 :
   field1 : "Hello"
   feild2 : "Hello"
branchA3 :
   field1 : "Hello"
   field2 : "Hello"
branchA4 :
   field1 : "Hello"
   field2 : "Hello"
branchA5 :
   field1 : "Hello"
   field2 : "Hello" 



Branch B :
 branchB1 :
   randomID1:
     Id : branchA5
   randomID2:
     Id : branchA1
   randomID3:
     Id : branchA2
 branchB2 :
   randomID1:
     Id : branchA3
   randomID2:
     Id : branchA4

So suppose user selected id is branchB2 then how can I select only branchA3 and branchA4 from branchA using Angular JS?所以假设用户选择的 id 是 branchB2 那么我如何使用 Angular JS 从 branchA 中只选择 branchA3 和 branchA4 ?

Divide this procedure in 2 steps then it should be pretty straightforward.将此过程分为 2 个步骤,那么它应该非常简单。

  1. Get branchB2 and read IDs of it's child nodes获取 branchB2 并读取其子节点的 ID
  2. Make another request to get those nodes from branch A.发出另一个请求以从分支 A 获取这些节点。
// Getting branch B2
const dbRef_B = firebase.database().ref("branchB/branchB2")
const dbVal = (await dbRef_B.once("value")).val()

// Reading child nodes
const branchA_Keys = Object.values(dbVal).map(b => b.Id)

// Make separate requests for these IDs
const requests = branchA_Keys.map((key) => firebase.database().ref(`branchA/${key}`).once("value"))

// Running all requests simultaneously using Promise.all()
const snapshots = await Promise.all(requests)
const data = snapshots.map(snap => snap.val())

console.log(data)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM