2016-03-23 2 views
0

Ich habe Benutzerklasse wie dieseWie bekomme ich das Objekt von Firebase in Android?

public class User{ 
int id; 
String description; 
String shortDescription; 
String photo; 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getDescription() { 
    return description; 
} 

public void setDescription(String description) { 
    this.description = description; 
} 

public String getShortDescription() { 
    return shortDescription; 
} 

public void setShortDescription(String shortDescription) { 
    this.shortDescription = shortDescription; 
} 

public String getPhoto() { 
    return photo; 
} 

public void setPhoto(String photo) { 
    this.photo = photo; 
} 
} 

i den Benutzers auf meiner Feuerbasis gespeichert ist Abrufen des FirebaseRecyclerAdapter mit wie wie unten

FirebaseRecyclerAdapter<User, UserHolder> adapter = 
      new FirebaseRecyclerAdapter<User, UserHolder>(
        User.class, 
        android.R.layout.two_line_list_item, 
        UserHolder.class, 
        mRef) { 
       @Override 
       protected void populateViewHolder(UserHolder userHolder, User u, int i) { 
        userHolder.mText.setText(u.getDescription()); 
       } 
      }; 

gezeigt, aber das Problem ist, wenn die Feuerbasis Schlüssel der Benutzerobjekt ist wie

> -KDY9Pna7XqgFkyCHKFJ 

dieser dann seine Arbeits feinen aber wenn die Feuerbasis Schlüssel ist wie

> c5755a68-69a7-4464-956e-c2f94d9b387d 

Diese einzigartige ID dann wird ein Fehler

> com.firebase.client.FirebaseException: Failed to bounce to type 

Schwerwiegende Ausnahme geben: main Prozess: in .oprof, PID: 12399 com.firebase.client.FirebaseException: Fehler beim Springen auf den Typ bei com.firebase.client.DataSnapshot.getValue (DataSnapshot.java:183) bei com.firebase.ui.FirebaseRecyclerAdapter.parseSnapshot (FirebaseRecyclerAdapter.java:161) bei com.firebase.ui.FirebaseRecyclerAdapter.getItem (FirebaseRecyclerAdapter. java: 150) bei com.firebase.ui.FirebaseRecyclerAdapter.onBindViewHolder (FirebaseRecyclerAdapter.java:190) bei android.support.v7.widget.RecyclerView $ Adapter.onBindViewHolder (RecyclerView.java:5465) bei android.support. v7.widget.RecyclerView $ Adapter.bindViewHolder (RecyclerView.java:5498) bei android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:4735) bei android.suppor t.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:4611) bei android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.java:1988) bei android.support.v7.widget. LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1384) bei android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1347) bei android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:574) bei android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3026) bei android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:2903) bei android.support.v7.widget. RecyclerView.onLayout (Recycl erView.java:3277) bei android.view.View.layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java:5040) bei android.widget.FrameLayout.layoutChildren (FrameLayout. java: 579) bei android.widget.FrameLayout.onLayout (FrameLayout.java:514) bei android.view.View.layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java: 5040) bei android.widget.LinearLayout.setChildFrame (LinearLayout.java:1703) bei android.widget.LinearLayout.layoutVertical (LinearLayout.java:1557) bei Android.widget.LinearLayout.onLayout (LinearLayout.java:1466) bei android.view.View.layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java:5040) bei android.support. v4.widget.DrawerLayout.onLayout (DrawerLayout.java:1183) bei android.view.View.layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java:5040) bei Android. widget.FrameLayout.layoutChildren (FrameLayout.java:579) bei android.widget.FrameLayout.onLayout (FrameLayout.java:514) bei android.view.View.layout (View.java:15689) bei android.view. ViewGroup.layout (ViewGroup.java:5040) an android.widget.LinearLayout.setChildFrame (LinearLayout.java:1703) bei android.widget.LinearLayout.layoutVertical (LinearLayout.java:1557) bei android.widget.LinearLayout.onLayout (LinearLayout.java:1466) bei android.view.View.layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java:5040) bei android.widget.FrameLayout.layoutChildren (FrameLayout.java:579) bei android. widget.FrameLayout.onLayout (FrameLayout.java:514) bei android.view.View.layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java:5040) bei android.widget. LineareL ayout.setChildFrame (LinearLayout.java:1703) bei android.widget.LinearLayout.layoutVertical (LinearLayout.java:1557) bei android.widget.LinearLayout.onLayout (LinearLayout.java:1466) bei android.view.View. Layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java:5040) bei android.widget.FrameLayout.layoutChildren (FrameLayout.java:579) bei android.widget.FrameLayout.onLayout (FrameLayout.java:514) bei android.view.View.layout (View.java:15689) bei android.view.ViewGroup.layout (ViewGroup.java:5040) bei android.view.ViewRootImpl.performLayout (ViewRootImpl. Java: 2116) bei android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1873) bei android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1084) bei android.view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:5990) bei android.view.Choreographer $ CallbackRecord.run (Choreographer.java:767) bei android.view.Choreographer.doCallbacks (Choreographer.java:580) bei android.view.Choreographer.doFrame (Choreographer.java:550)

Was ist die genaue Ausgabe, ich immer bin nicht kann jemand hilf mir?

Vielen Dank im Voraus !!!

+0

kann ich wissen, was ist ** s ** in dieser Zeile ** userHolder.mText.setText (s.getDescription()) Ich finde nicht, wo du das deklariert hast. – Kathi

+0

Entschuldigung seine u.getDescription() –

+0

Noch wenig verwirrt, können Sie über ** Schlüssel ** erzählen. ist dieser Schlüssel in Firebase oder Schlüssel des Objekts während des Debuggens? – Kathi

Antwort

2

Versuchen @JsonIgnoreProperties (ignoreUnknown = true) auf der Oberseite der Klasse wie dieses

@JsonIgnoreProperties(ignoreUnknown = true) 
public class UserModel { 

} 

Dies könnte funktionieren, weil Firebase verwendet Jackson Bibliothek serialise/deserialise JSON und die Verwendung von @JsonIgnoreProperties (ignoreUnknown = true setzen) soll neue Eigenschaften ignorieren (Eigenschaften, die nicht in der Klasse deklariert sind) wie hier angegeben https://stackoverflow.com/a/5455563/2331705

+0

Dies funktioniert für mich ... Danke –

+0

@KedarKalkote Wenn diese Antwort nützlich war, klicken Sie auf die upvote Schaltfläche links davon. Wenn es Ihre Frage beantwortet hat, klicken Sie auf das Häkchen, um es zu akzeptieren. Auf diese Weise wissen andere, dass Ihnen (ausreichend) geholfen wurde. –