2017-10-13 44 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