2017-09-10 20 views
1

から2つの変数を取得します。しかし、私はいつも非常に複雑なガイド(私の英語は多かれ少なかれJavaの新機能ではない)と、アプリケーションがクラッシュするために仕事に就かないものに苦しんでいます...は、どのように私は私のデータベース私は「文字列1」から「gedrueckt」を取得したい <a href="https://i.stack.imgur.com/Pp8eY.png" rel="nofollow noreferrer">My Realtime database</a></p> <p>から2つの整数の変数を取得したい私のアプリでFirebaseリアルタイムDB

私はこれを試しました最後に、私はデータベースから正しいものを得ることができ、クラッシュするためにどのように動作させるのかについては分かりません。

MainActivity.java:

 myRef.addChildEventListener(new ChildEventListener() { 
     @Override 
     public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
      String text = "text_" + selecter; 
      Log.d(TNOT, dataSnapshot.getValue(String.class)); 

     } 

エラーアップがコードを使用している間:

FATAL EXCEPTION: main 
                        Process: com.example.alex.wouldyoupressthebutton, PID: 22850 
                        com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String 
                         at com.google.android.gms.internal.zzdzl.zzb(Unknown Source) 
                         at com.google.android.gms.internal.zzdzl.zza(Unknown Source) 
                         at com.google.firebase.database.DataSnapshot.getValue(Unknown Source) 
                         at com.example.alex.wouldyoupressthebutton.MainActivity$1.onChildAdded(MainActivity.java:99) 
                         at com.google.android.gms.internal.zzdqc.zza(Unknown Source) 
                         at com.google.android.gms.internal.zzdvo.zzbur(Unknown Source) 
                         at com.google.android.gms.internal.zzdvu.run(Unknown Source) 
                         at android.os.Handler.handleCallback(Handler.java:751) 
                         at android.os.Handler.dispatchMessage(Handler.java:95) 
                         at android.os.Looper.loop(Looper.java:154) 
                         at android.app.ActivityThread.main(ActivityThread.java:6316) 
                         at java.lang.reflect.Method.invoke(Native Method) 
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) 

は、あなたがこの問題で私を助けることができると思います。

MrMinemeet

答えて

1

キーペアのような値を読み取る必要があります。

for (DataSnapshot data : dataSnapshot.getChildren()) { 
    String yourText = String.valueOf(data.child("name from your fierbase child ").getValue()); 
    yourObjectList.add(yourTextValue); 
    } 

または1つの完全な例:

private DatabaseReference mDataBaseRef; 
mDataBaseRef= FirebaseDatabase.getInstance().getReference() 

ValueEventListener postListener = new ValueEventListener() { 
@Override 
public void onDataChange(DataSnapshot dataSnapshot) { 
    int youtItemId = dataSnapshot.child("user").child("yourItemId").getValue(Integer.class); 
} 

@Override 
public void onCancelled(DatabaseError databaseError) { 
    // Log the message from databaseError 
    } 
}; 

mDataBaseRef.addValueEventListener(postListener); 

別の例:

DatabaseReference reference = 
database.getReference("UserInfo").child("gameStats"); 
reference.addValueEventListener(new ValueEventListener() { 
@Override 
public void onDataChange(DataSnapshot dataSnapshot) { 

    // You have to use key-value pairs like in ContentValues 
    // To loop through the values 

    for (DataSnapshot snap: dataSnapshot.getChildren()) { 
    snap.child("child") yourObeject.getValue(youObject.Class) 

    } 

} 

}

関連する問題

 関連する問題