2017-06-30 21 views
0

firebaseからデータを照会したいと思います。 しかし、私はいくつかの問題を抱えています。 これは私のfirebaseデータ click me show the pictureAndroidのfirebaseデータを照会してください

Firebase myFirebaseRef = new Firebase("http//....."); 
Query queryRef= myFirebaseRef.child("0912345678").orderByChild("coffeeNo").equalTo("002"); 

    queryRef.addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot snapshot) { 
        // do some stuff once 

        if (snapshot.getValue() == null) { 
         txtMyCoffee.setText("No data"); 
        } 
        else{ 
          for (DataSnapshot dataSnapshot : snapshot.getChildren()) 
          { 
           Coffee userCoffee = dataSnapshot.getValue(Coffee.class); 
           date = userCoffee.getDate(); 
           txtMyCoffee.setText(date+" Success!"); 
          } 
         } 
       } @Override 
       public void onCancelled(FirebaseError firebaseError) { 
       } 
      }); 

ですが、私はこのコードを実行すると、txtMyCoffeeのテキストは、「データなし」私は表示されません。 この問題を解決する方法は? ありがとう皆さん!

+0

子ノード( "0912345678")の下に子ノードがあるので、親ノードだけでなく、John O'Reillyの回答 –

+0

@OussemaArouaをチェックしてください。 –

+0

下記のJohn O'Reillyの答えを確認してください。リンク:https://stackoverflow.com/a/44843802/4063532 –

答えて

0

で、次のものがあり、このコードを使用してください:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference coffeeNoRef = rootRef.child("myCoffee").child("0912345678").child("20170627"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     String coffeeNo = dataSnapshot.child("coffeeNo").getValue(String.class); 
     Log.d("TAG", coffeeNo); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
coffeeNoRef.addListenerForSingleValueEvent(eventListener); 

とOUTは次のようになります。

003 

は確かに動作します。

+0

"import com.google.firebase.database.DatabaseReference;" と "プラグイン適用されます: 'com.google.gms.google-サービス'" のGradleコードで と 依存関係{ クラスパス 'com.android.tools.build:gradle:2.1.2' クラスパス「COMを。 google.gms:google-services:3.0.0 ' } Android Studioでは "symbol' database 'を解決できません" –

+0

はい、「compile」com.google.firebase:firebase-database:11.0を追加する必要があります.1 ''をbuild.gradleファイルまたは他のバージョンにコピーします。それは必須です。正しいバージョン[ここ](https://github.com/firebase/FirebaseUI-Android)を見つけてください。 –

+0

私はあなたが言ったことはしましたが、それでもクエリの値はまだヌルです.... :( –

0

あなたが使用しているクエリのタイプは、子供を反復する必要がします(複数の結果を返すことができます)....これだけonDataChanged

+0

はい、私はあなたが言ったが、それでもクエリはnullです... –

関連する問題