从另一个Firebase节点获取对象,如SQL中的“外键”

时间:2017-09-14 18:22:58

标签: angular firebase firebase-realtime-database angular2-services angularfire2

这是我在Angular4 + Firebase中的第一个项目,我希望您对某些问题表示支持。我正在使用AngularFire2连接Firebase服务器。

这是我的Firebase数据库:

product
  |-KmlWSH-U3XTwudPsA4X 
    |name: "product 1" 
    |type: "52"
    |manufacture: "-KtJkcbXP5dOcOeoP20G"  
  |-KmlXXX-XXXXXX 
    |name: "product 2" 
    |type: "53"
    |manufacture: "-XXXXXXXXXXXXXXXXXX" 

manufacture
  |-KtJkcbXP5dOcOeoP20G 
    |name: "manufacture 1" 
    |country: "Japan"

我正在尝试获取与正确制造对象连接的产品列表。我希望得到这样的东西:

  {$key: -KmlWSH-U3XTwudPsA4X 
  name: "product 1" 
  type: "52"
  manufacture: "-KtJkcbXP5dOcOeoP20G"  
  manufactureObject: {name: "manufacture 1", country: "Japan"} }

目前我正在使用以下代码来检索此内容:

return this.db.list("product")
.map(products => products.map(product => {
        let p = Product.fromJson(product);
        p.manufactureObject = this.db.object("manufacture"+ "/" +p.manufacture);
        return p;
      }))
在这种情况下,

“manufactureObject”以Observable的形式返回。

在模板上我没有问题,我正在使用

{{ (row.manufactureObject | async)?.name}}

像魅力一样。

但我不知道如何在FormGroup上使用它。

this.form = new FormGroup({
      '$key': new FormControl(t.$key),
      'name': new FormControl(t.name, Validators.required),
      'manufactureObject': new FormControl(t.manufactureObject, Validators.required),
    });

有谁知道怎么做? 还有其他办法吗?

在SQL中,这很简单,它只是与另一个表^^

的“连接”

感谢您的支持

0 个答案:

没有答案