Firebase + Aurelia:Firebase如何处理返回的key =>值格式?

时间:2016-11-01 18:19:29

标签: json firebase firebase-realtime-database aurelia key-value

我正在从Firebase中检索以下结构:

  "bills" : {
    "1" : { // the customer id
      "orders" : {
        "-KVMs10xKfNdh_vLLj_k" : [ { // auto generated
          "products" : [ {
            "amount" : 3,
            "name" : "Cappuccino",
            "price" : 2.6
          } ],
          "time" : "00:15:14"
        } ]
      }
    }
  }

我正在寻找一种方法来处理Aurelia。我编写了一个值转换器,允许我的repeat.for循环订单的对象键,将每个订单发送到order-details组件。问题是,这没有传递密钥,我需要删除某个订单(“-KVMs10xKfNdh_vLLj_k”)

我应该遍历每个订单并自己添加密钥作为属性吗?

有更好/更快的方式吗?

1 个答案:

答案 0 :(得分:1)

这个答案可能有点晚了(抱歉OP),但对于其他寻找解决方案的人来说,你可以将快照转换为一个数组,你可以使用repeat.for在Aurelia视图中进行迭代。

这是我在所有Aurelia + Firebase应用程序中使用的功能:

    export const snapshotToArray = (snapshot) => {
        const returnArr = [];

        snapshot.forEach((childSnapshot) => {
            const item = childSnapshot.val();

            item.uid = childSnapshot.key;

            returnArr.push(item);
        });

    return returnArr;
};

您可以这样使用它:

firebase.database().ref(`/bills`)
    .once('value')
    .then((snapshot) => {
        const arr = snapshotToArray(snapshot);
    });