2017-03-27 2 views
0

Ich versuche, eine einfache Zeichenfolge aus meiner Datenbank mit Firebase Docs Guide zu protokollieren, aber ich erhalte diesen Fehler: com.google .firebase.database.DatabaseException: Fehler Werte vom Typ java.util.HashMap in String konvertierencom.google.firebase.database.DatabaseException: Konnte den Wert vom Typ java.util.HashMap nicht in String umwandeln

dies ist mein Code:

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 

import com.google.firebase.database.DataSnapshot; 
import com.google.firebase.database.DatabaseError; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 
import com.google.firebase.database.ValueEventListener; 



public class MainActivity extends AppCompatActivity { 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     FirebaseDatabase database = FirebaseDatabase.getInstance(); 
     DatabaseReference myRef = database.getReference("brands"); 

     myRef.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       String value = dataSnapshot.getValue(String.class); 

       Log.d("TAG", "Value is: " + value); 
//; 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 



    } 



} 

Vielen Dank für jede Art von Hilfe!

logcat:

03-27 18:58:12.593 574-574/com.ofir.motoinfo E/AndroidRuntime: FATAL EXCEPTION: main 
                   Process: com.ofir.motoinfo, PID: 574 
                   com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String 
                    at com.google.android.gms.internal.zzbtg.zzaF(Unknown Source) 
                    at com.google.android.gms.internal.zzbtg.zzb(Unknown Source) 
                    at com.google.android.gms.internal.zzbtg.zza(Unknown Source) 
                    at com.google.firebase.database.DataSnapshot.getValue(Unknown Source) 
                    at com.ofir.motoinfo.MainActivity$1.onDataChange(MainActivity.java:33) 
                    at com.google.android.gms.internal.zzbpx.zza(Unknown Source) 
                    at com.google.android.gms.internal.zzbqx.zzZS(Unknown Source) 
                    at com.google.android.gms.internal.zzbra$1.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:6119) 
                    at java.lang.reflect.Method.invoke(Native Method) 
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

Antwort

0

Sie hat nicht die logcat aber der Fehler ist auf der Zeile:

String value = dataSnapshot.getValue(String.class); 

Du forderst ein String aber der Knoten in Firebase eine HashMap enthält. Stellen Sie sicher, dass Sie sich am richtigen Knoten befinden oder dass die Daten ordnungsgemäß formatiert sind.

+0

nicht wirklich sicher, was ein Knoten ist, fügte mein logcat zum Beitrag hinzu. – Skity

+0

Danke für das Logcat. Was ich mit _node_ meine, ist Ihre 'DatabaseReference', die auf einen" Knoten "in der" Baum "-Struktur verweist, die die JSON-Datenbank von Firebase ist. Im Grunde loggen Sie Ihre 'DatabaseReference' ein, um sicherzustellen, dass Sie sich an der richtigen Stelle in Ihrer Datenbank befinden. Wenn dies der Fall ist, können Sie auch sehen, ob die Daten bei dieser Referenz die Daten sind, die Sie möchten. Etwas wie 'Log.d (LOG_TAG," Reference: "+ myRef.toString());' Dann können Sie auf die URL in Ihrem Logcat klicken. – Sunshinator

0

Ermittelt, ich musste die Kinder DatabaseReference myRef = database.getReference() hinzufügen, da ich auf die gesamte Datenbank Bezug nahm.

Verwandte Themen