firebase 3查询或angularfire2过滤器管道如何用表格格式和sum / total显示快照数据

时间:2017-04-21 08:50:49

标签: firebase angularfire2

我的firebase架构如下:

{
  "orders" : {

    “-Shjy4X7atpPy12345Qum" : {
      "qty" : 1,
      "amount" : 10000,
      "payment_type” : "Cash”,
      "productId" : “-ShWSex7Hjit_mYrwuBA”,
      "productPrice" : 13000,
      "u_id" : “aABCW88eNIge4ysb9TDeTHESK4"
    },

“-Ahjy6X9atpBy3435Hki” : {
      "qty" : 1,
      "amount" : 20000,
      "payment_type” : "Card”,
      "productId" : “-AhWFet9Hjit_mGrwuPA”,
      "productPrice" : 13000,
      "u_id" : “aABCW88eNIge4ysb9TDeTHESK4"
    }
}

}

期望的输出:

订单

Product--------------------Quantity---------------Price
-ShWSex7Hjit_mYrwuBA-------   1    ---------------10000
-AhWFet9Hjit_mGrwuPA-------   1    ---------------10000

总计:20000

这可以在Firebase查询中实现:

{ query: {orderByChild: 'productId', equalTo: 'productId'}

或使用角管?

感谢您的解决方案。

1 个答案:

答案 0 :(得分:0)

我可以建议您在数据库架构中进行一项改进,以使其更容易。由于订单可以包含多个产品,您可以在名为" cart"的订单下创建一个节点。它将具有productId(作为键)和数量(作为值)的键值对。

{ 
  orders:
      cart:
          productId_1 : quantity_1,
          productId_2 : quantity_2,
}

现在你可以阅读"购物车"节点&该节点的每个对象都将$ key作为productId - 使用它来检索产品的价格。而$ value是数量。现在你拥有了所需的所有价值。