私はデータベース内の同じ参照の下にいくつかのデータを持っており、それをArrayList<String>
に格納しようとしています。参照mDatabase.child("child").child(uid)...
はそれに保存されている2つのキーを持っており、それらがids
一つずつ、このように格納なっているFirebaseから取得したデータをArrayList <String>にまとめて保存するには?
mDatabase.child("child").child(uid).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.getValue() != null){
ids.add(dataSnapshot.getValue().toString());
Log.d("ids", ids.toString());
} else {
Toast.makeText(getBaseContext(), "No data!", Toast.LENGTH_SHORT).show();
}
}
...
...
});
:
D/ids: [-Kayr_ENTy4QZQKn3Bgx]
D/ids: [-Kayr_ENTy4QZQKn3Bgx, -KaywN_5pTOrB0ooBIC3]
私はしたいもの
はここに方法ですは、一度にids
に追加する方法です。
UPDATE 1: -
データ構造は、このような種類のものである:cartantによって示唆されるように、このように得られている
-app
-child
-uid
-1484967071: -Kayr_ENTy4QZQKn3Bgx
-1484967222: -KaywN_5pTOrB0ooBIC3
とvalueEventListener()
を使用して、検索されたばかり:
D/ids: [{1484967222=-KaywN_5pTOrB0ooBIC3, 1484967071=-Kayr_ENTy4QZQKn3Bgx}]
私は鍵が欲しいですが、-KaywN_5pTOrB0ooBIC3
とです。
あなたは、あなたの例では値を指しているとします。上記のデータ構造では、キーは1484967071と1484967222のようで、値は "-Kayr_ENTy4QZQKn3Bgx"と "-KaywN_5pTOrB0ooBIC3"です。キーや値が本当に必要ですか? –
@DougStevenson by keys by私は文字列 '-KaywN_5pTOrB0ooBIC3'を意味し、この' -Kayr_ENTy4QZQKn3Bgx'は 'key:value'ペアのキーではありません。混乱させて申し訳ありません。 –
私は与えられた答えはあなたのために働くべきだと思います。 onDataChange()に渡されたスナップショットではなく、反復子スナップショットの値を取得していることを確認してください。 –