2017-04-11 3 views
0

AngularFire2 및 Firebase와 함께 Ionic2를 사용하고 있습니다. Firebase의 노드 아래에리스트/배열이 있습니다. 항목은 push() 기능으로 추가됩니다. 다음은 구조입니다.Firebase 목록에서 한 항목 제거/업데이트

node: 
    -KhPSh52vq2m23le1qZ5: "value1" 
    -KhPShqhHDVuxeUbryT7: "value2" 
    -KhPSijWf_EuwmCHPJjv: "value3" 

이제 목록에서 항목 하나를 쿼리하여 삭제해야합니다. 다음 코드로 쿼리를 수행하고 올바른 FirebaseListObservable을 얻고 있습니다. 이 후

this.af.database.list(`node`, { 
     query:{ 
      orderByValue: true, 
      equalTo: 'value1' 
     } 
     }); 

제거하는 방법/목록

답변

2

관찰이 saving and removing items을 위해 여러 가지 방법을 공개 목록에서이 단일 항목을 업데이트합니다. remove으로 전화하여 제거 할 항목의 키를 전달해야합니다.

let list = this.af.database.list('node', { 
    query:{ 
    orderByValue: true, 
    equalTo: 'value1' 
    } 
}); 

// Query the list for the purposes of this example: 
list.first().subscribe((items) => { 

    // Remove the matching item: 
    if (items.length) { 
    list.remove(items[0].$key) 
     .then(() => console.log('removed ' + items[0].$key)) 
     .catch((error) => console.log(error)); 
    } 
}); 
+0

작동하지 않았습니다. 내가 제거 기능에 대한 매개 변수를 알고 열쇠로해야합니다. 여기서 value1은 키가 아니라 값입니다. –

+0

네, 맞습니다. 답변을 업데이트했습니다. – cartant

+0

구독을 사용하면 목록에 변경 사항이있을 때마다 트리거되지 않습니까? 나는이 시나리오를 피하고 싶다. –