使用React和Firebase进行商务
我需要获取状态为'on-hold‘的所有订单,因此我执行了以下操作:
JS
const ordersRef = firebase.database().ref('/orders');
let orders = [];
ordersRef.on('child_added', snap => {
if (snap.val().status.state === 'on-hold') {
orders = [
{
...snap.val(),
id: snap.key
},
...orders
];
this.setState({loading:false, orders: orders});
}
})这是有效的,唯一的问题是,如果没有订单‘等待’,‘正在加载’的状态永远不会改变。
firebase数据库如下所示:
orders: {
...
id: {
...
status: {
...
state: 'on-hold'
}
}
}发布于 2017-12-23 06:43:57
您将希望使用一个查询(仅获取处于暂挂状态的订单)和一个value侦听器(以确保在没有处于暂挂状态的订单时也会调用)。
const ordersRef = firebase.database().ref('/orders');
let orders = [];
ordersRef.orderByChild("status/state").equalTo("on-hold").on('value', snapshot => {
orders = [];
snapshot.forEach((snap) => {
orders.push({ ...snap.val(), id: snap.key });
})
this.setState({loading:false, orders: orders});
})https://stackoverflow.com/questions/47947785
复制相似问题