我正在从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”)
我应该遍历每个订单并自己添加密钥作为属性吗?
有更好/更快的方式吗?
答案 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);
});