2017-12-22 16 views
0

상공 중포 기지상태로 주문을 받기 반작용 사용하여 중포 기지

내가 '보류'상태로 모든 주문을받을 필요가 그래서 나는 다음 않았다

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}); 
     } 
    }) 

JS를

이것은 작동 중입니다. 유일한 문제는 주문이 '보류 중'인 경우 '로드 중'상태가 변경되지 않는다는 것입니다.

orders: { 
    ... 
    id: { 
    ... 
    status: { 
     ... 
     state: 'on-hold' 
    } 
    } 
} 

답변

2

당신은 당신이 또한 때이 전화를받을 수 있도록 (그리고 value 리스너 (만 보류중인 주문을 얻을에) 쿼리를 사용할 수 있습니다 :

중포 기지 DB 뭔가처럼 보인다 보류중인 주문이 없습니다.)

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}); 
})