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

ljsrvy3e  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(296)

假设我在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

假设用户选择的id是branchb2,那么如何使用angular js从brancha中仅选择brancha3和brancha4?

dkqlctbz

dkqlctbz1#

将此过程分为两个步骤,然后应该非常简单。
获取branchb2并读取其子节点的ID
再次请求从分支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)

相关问题