Android FB abrufen von Daten von untergeordneten Knoten

Ich versuche, die Daten aus der FB-Knoten-Kind. Aber es wirft Can't convert object of type java.lang.String to type uk.co.stableweb.geethika.model.DailyVerse Ausnahme.

Dies ist die Struktur meiner FB-Datenbank.

Android FB abrufen von Daten von untergeordneten Knoten

Hier ist der code. Ich bin mit Android FB neue Dokumentation.

mRef = FirebaseDatabase.getInstance().getReference().child("daily_verse");
mRef.keepSynced(true);

ChildEventListener childEventListener = new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
        Log.d("Child Event,Verse", dataSnapshot.getKey());

        dailyVerse = dataSnapshot.getValue(DailyVerse.class);

    }

    @Override
    public void onChildChanged(DataSnapshot dataSnapshot, String previousChildName) {
        Log.d("Child Event,Verse", "onChildChanged:" + dataSnapshot.getKey());

        dailyVerse = dataSnapshot.getValue(DailyVerse.class);
    }

    @Override
    public void onChildRemoved(DataSnapshot dataSnapshot) {

    }

    @Override
    public void onChildMoved(DataSnapshot dataSnapshot, String previousChildName) {

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.w("Firebase", "onCancelled", databaseError.toException());
        Toast.makeText(context, "Failed to load verse",
                Toast.LENGTH_SHORT).show();
    }
};

mRef.addChildEventListener(childEventListener);

- Und Model-Klasse.

public class DailyVerse {

    private String verse_title;
    private String verse_content;

    public String getVerseTitle() {
        return verse_title;
    }

    public void setVerseTitle(String verse_title) {
        this.verse_title = verse_title;
    }

    public String getVerseContent() {
        return verse_content;
    }

    public void setVerseContent(String verse_content) {
        this.verse_content = verse_content;
    }
}

Und die LogCat.

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type uk.co.stableweb.geethika.model.DailyVerse
  at com.google.android.gms.internal.zzalq.zzd(Unknown Source)
  at com.google.android.gms.internal.zzalq.zzb(Unknown Source)
  at com.google.android.gms.internal.zzalq.zza(Unknown Source)
  at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
  at uk.co.stableweb.geethika.VerseActivityFragment$1.onChildAdded(VerseActivityFragment.java:63)
  at com.google.android.gms.internal.zzahh.zza(Unknown Source)
  at com.google.android.gms.internal.zzajh.zzctc(Unknown Source)
  at com.google.android.gms.internal.zzajk$1.run(Unknown Source)
  at android.os.Handler.handleCallback(Handler.java:739)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:148)
  at android.app.ActivityThread.main(ActivityThread.java:5461)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Aber wenn ich den Datenbank-Verweis wie folgt. Und Holen Sie sich die dataSnapshot Wert, es packt die Daten.

mRef = FirebaseDatabase.getInstance().getReference("daily_verse");

testVal = (String) dataSnapshot.getValue();
Log.d("TEST", testVal);

V/FA: Activity resumed, time: 278033062
D/Child Event,Verse added: verse_content
D/TEST: විශ්වාසකමේ මාර්ගය තෝරා ගතිමි. ඔබගේ විනිශ්චයන් මා ඉදිරියෙහි තබා ගතිමි.
D/Child Event,Verse added: verse_title
D/TEST: ගීතාවලිය 119:30

Ich denke, es ist möglich, diese Werte mithilfe von HashMap. Aber es war ein Kommentar sagen, es ist nicht mehr empfohlen.

  • geben Sie nicht hier, überprüfen Sie den Typ erklären Sie auf der FB-Datenbank für verse_content
  • Ich verstehe nicht, ist nicht Android-Datenbank speichern die Werte als json, so Typ string ist richtig?
InformationsquelleAutor Isuru | 2016-07-24
Schreibe einen Kommentar