2017-10-13 71 views
0

我有一個普遍的問題,如何使用平面數據庫結構相對於其他屬性。如何連接帶扁平結構的鑰匙項目? Angular 2 + Firebase

my structure

所以你可以看到,這裏是我的火力strucure。每個戰役有很多代碼

活動 - >用戶ID - > CAMPAIGNID - >屬性

碼 - >用戶ID - > CAMPAIGNID - >代碼ID - >屬性

最新最好的/正常方式 「連接」他們?當然,我得到了兩個不同的觀察值,但我無法真正弄清楚在用ngFor迭代廣告系列後,顯示屬於該廣告系列的代碼的方式是什麼?

問候

+0

由於campaings和代碼具有相同的標識,你只需要拿到代碼,並把它放在campaings,做出一個參考它。然後你循環現在有代碼的活動。 – kappaallday

回答

0

我認爲這將是,如果你只是結合了運動內部的代碼更快。

-> campaigns 
    -> [userId] 
    -> [campaignId] 
      -> active: false 
      -> name: "sadasd" 
      -> timestamp: 1507923847578 
      -> codes : 
       -> [codeId] 
       -> name: "test1" 
       -> [codeId] 
       -> name: "test2" 
    -> [campaignId] 
      -> active: true 
      -> name: "Test1" 
      -> timestamp: 1507923845531 
      -> codes : 
       -> [codeId] 
       -> name: "test3" 
       -> [codeId] 
       -> name: "test4" 

然後用*ngFor='let campaign of campaigns | async'

內的是,使用*ngFor='let code of campaign.codes'

+0

但我也有下載[codeId]與新的屬性。因此,每個代碼的每次下載都會通過附加信息進行跟蹤,所以如果每個廣告系列有30個代碼,並且有數千次下載,那麼只需要獲取代碼列表即可獲得大量數據。儘管我的問題更多的是如何連接不同屬性的相同鍵,而不管前面的結構如何。我相當新的角度和firebase – mrvnklm

+0

除此之外,我忘了說,代碼必須有公共讀取權限 – mrvnklm