我的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'}
或使用角管?
感谢您的解决方案。
答案 0 :(得分:0)
我可以建议您在数据库架构中进行一项改进,以使其更容易。由于订单可以包含多个产品,您可以在名为" cart"的订单下创建一个节点。它将具有productId(作为键)和数量(作为值)的键值对。
{
orders:
cart:
productId_1 : quantity_1,
productId_2 : quantity_2,
}
现在你可以阅读"购物车"节点&该节点的每个对象都将$ key作为productId - 使用它来检索产品的价格。而$ value是数量。现在你拥有了所需的所有价值。