2016-08-08 6 views
1

このコードが実行されるたびに照会してからquery.ref.removeValue()を呼び出すと、特定のノードをデータベースから削除しようとしていますが、ちょうどノード。私のコードは次のようになります...query.ref.removeValueは単なるノードではなく子全体を削除します

let query = (ref?.child("Groups").child("Martins").child("Messages").queryEqualToValue(selectedValue)) 

query!.ref.removeValue() 
私のデータベースはこのように見ている

...すべてのヘルプのための

It starts with the child named "Groups" then another which is the name of the group then a child named "Messages" and inside I want to be able to individuall delete the nodes instead of deleting the whole Messages child.

おかげで、私はそれを本当に感謝しています。

+0

:クエリが一致し、クエリにリスナーを添付して、子どもたちを反復処理する必要があります個々の項目を削除するには

。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

答えて

0

クエリ参照は、クエリが定義されている場所を指し、一致する要素は指していません。したがって、query!.ref.removeValue()は場所全体を削除します。あなたは、あなたの質問にJSONツリーの絵を含めました

let query = ref?.child("Groups").child("Martins").child("Messages") 
       .queryOrderedByKey("Item").queryEqualToValue(selectedValue) 

query.observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in 
    snapshot.ref.removeValue() 
}) 
+0

このコードを使用すると、何も削除されません... – Leo

+0

ええ、そこに 'queryOrderedByKey'もありませんでした。 https://firebase.google.com/docs/database/ios/retrieve-data#sorting_and_filtering_data –

+0

この修正は私のためには機能しません。コードを追加するとFirebaseから何も削除されません。 – Leo

関連する問題