2017-01-18 14 views
2

私のデータベースの構造は次のようになります。1ノードアンドロイドfirebaseの下でデータを照会/取得する方法は?

myDatabasename 
name1:{ 
    UserID: { 
     uniqueId: { 
     Data1: "" 
     Data1: "" 
    } 

    UserID: { 
     uniqueId: { 
     Data1: "" 
     Data1: "" 
    } 
} 
name2:{ 
    UserID: { 
     uniqueId: { 
     Data1: "" 
     Data1: "" 
    } 

    UserID: { 
     uniqueId: { 
     Data1: "" 
     Data1: "" 
    } 

私は、ノードのちょうどNAME1一部からデータを取得したいと思いますが、私はこれを行うことができますかわからない:以前私はNAME1とNAME2を持っていなかったので、私このようなデータを取得することができました。それはうまくいった。

for (DataSnapshot ds1: ds.getChildren()) { 
     DATA data= ds1.getValue(DATA.class); 
     datas.add(data); 
    } 

私はfirebaseに新しいですので、私は、私はこれを行うことができますかわからない、私は遊んでみましたが、それは申し訳ありませんds.getChildren("name1") in red

for (DataSnapshot ds1: ds.getChildren("name1")) { 
      DATA data= ds1.getValue(DATA.class); 
      datas.add(data); 
     } 

DATA data = ds1.equals("name1").getValue(DATA.class); // I tried this but it also throws red line under getValue; 

==== EDIT

を強調します上記の構造の前の混乱のために、私の構造は似ていました。私は上記のコードを使用してこれを読み取ることができました。

UserID: { 
    uniqueId: { 
    Data1: "" 
    Data1: "" 
    } 
    uniqueId: { 
    Data2: "" 
    Data2: "" 
    } 
} 

答えて

1

あなたは使用してname1のすべての子を反復処理することができます

for(DataSnapshot ds1 : dataSnapshot.getChildren()){ 
    // your codes 
} 

をしかし、あなたは参照としてname1にリスナーを指している必要があります。

for(DataSnapshot ds1 : dataSnapshot.child("name1").getChildren()){ 
    // your codes 
} 

をそしてリスナーを作成します:

databaseReference.child("name1").addListenerForSingleValueEvent(valueEventListener); 

それとも、あなたもこれを行うことができます

databaseReference.addListenerForSingleValueEvent(valueEventListener); 

あなたは他のリスナーメソッドを使用することができます。

+0

こんにちは、どこでリスナーを作成する必要がありますか/どのようにリスナーを作成できますか? onCreateメソッド内の – SumOne

+0

はOKです。 –

+0

@SumOneあなたは、 "name2"がなかったときに "name1"を取り出すことができたと言いました。したがって、作成したリスナーを使用することができます。また、本当に助けが必要な場合は、MainActivityとDataクラスにコードを投稿することができます。私は助けるよ –

関連する問題