2017-04-02 8 views
0

私は現在、バックエンドに厳密にFirebaseを使用するアプリケーションを開発中です。私のアプリケーションでは、30のメッセージの後に書かれた最初のメッセージを削除したいと思います。言い換えれば、私は30のメッセージだけを格納することを許可したいと思います。私のfirebaseデータベースには、「ユーザ」と呼ばれるノードがあり、次にユーザIDのノードがあり、ユーザIDの1つの下にアイテムと呼ばれる別のノードがあります。しかし、itemsノードの下にある最初の子を削除したいのですが、その子の名前を知りません。私は.push()メソッドを使用してキーを設定しています。誰もその最初の子供だけを削除する方法を知っていますか?Firebaseのpush()キーを使用して最初の子を削除する

私はFirebaseの子供を削除する方法を知っていますが、その子供にアクセスする方法はわかりません。私は次の行に沿って何かを試しました:

DatabaseReference firstMessage = mDatabase.child("users").child(mUserId).child("items").getRef(); 

次に、これを実行して子供を削除します。

firstMessage.removeValue(); 

私は追加の子が存在すべきであることを右.child(「アイテム」)の後に知っているが、どのように私は、そのキーを入手できますか?

編集:あなたは、あなたのOnDataChangeのでこれを試すことができ

DatabaseReference firstMessage = mDatabase.child("users").child(mUserId).child("items").orderByPriority().limitToFirst(1).getRef(); 
+0

最も簡単な解決策は、おそらくそれが応答で古いアイテムを削除する必要がある場合は、各項目が、追加されると、決定したデータベース・トリガーを書くことFirebaseのためのクラウド機能を使用しようとしています。 –

答えて

0

を私は解決策が出ているが、代わりに項目ノードの最初の子を削除するのではなく、ユーザーのノードの最初の子を削除し、

for (DataSnapshot p : dataSnapshot.getChildren()) { 
    String childKey = p.getKey(); 
} 

これですべての子供のすべてのキーを取得できます。 arraylistに追加することも、何か他のことをすることもできます。

あなたには、いくつかの子を削除したい場合は、 使用

myRef.child("item").child("childKey_0").setValue(null); 

============================= ===== 2017年3月4日に

EDIT:

私はあなたの新しい質問を取得することはできません。 arrayListの使用例です。

ArrayList<String> childKey_list = new ArrayList<>(); 

for (DataSnapshot p : dataSnapshot.getChildren()) { 
    childKey_list.clear(); //clear the arrayList everytime the firebase refresh 
    String childKey = p.getKey(); 
    childKey_list.add(childKey); 
} 

If (some_method_of_time) { 
    String delete_childID = childKey_list.get(0); 
    myRef.child("item").child(delete_childID).setValue(null); 
} 
+0

私はこのソリューションを試して、それは動作しますが、ロードアウトが作成されたときに既にキーが格納されている場合には、arraylistに値を設定する必要があります。どのようにこれが行われたか考えていますか?これは私がこの方法に固執したところです。 –

+0

私は本当にあなたの質問を得ることはありません。しかし、私は答えを更新し、それが有用かどうかを見ることができます。 –

+0

申し訳ありません。私はこの方法を試みます。 childEventListenerの使用をお勧めしますか?あるいは、別の種類のリスナーが必要になるでしょうか?申し訳ありませんが、AndroidとFirebaseを学び始めました! –

関連する問題