Ich versuche, eine Anfrage an meine App mit Firebase zu stellen. Ich kann die Daten speichern, aber wenn ich versuche, sie abzurufen, bekomme ich diesen FehlerIgnoriere, was nicht in POJO ist
06-20 12:07:15.151 28158-28158/sgk.com.br.sgk E/AndroidRuntime: FATAL EXCEPTION: main
Process: sgk.com.br.sgk, PID: 28158
com.firebase.client.FirebaseException: Failed to bounce to type
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183)
at sgk.com.br.sgk.Activity.GreatTrainsActivity$1.onDataChange(GreatTrainsActivity.java:65)
at com.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:45)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "vdsrXOFXRZbAfmoEQ3WEVB1GDDa2" (class sgk.com.br.sgk.Others.Train), not marked as ignorable (2 known properties: , "description", "local"])
at [Source: [email protected]; line: 1, column: 34] (through reference chain: sgk.com.br.sgk.Others.Train["vdsrXOFXRZbAfmoEQ3WEVB1GDDa2"])
at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:555)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:708)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1160)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:315)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:181)
at sgk.com.br.sgk.Activity.GreatTrainsActivity$1.onDataChange(GreatTrainsActivity.java:65)
at com.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:45)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
ich schon Figur, was das Problem ist.
Meine Datenbank war wie die
{
"Train" : {
"description" : "dbdjem",
"local" : "shsusn"
},
"users" : {
"f01dfa18-54ac-41ea-97ff-97d0e40b872b" : {
"email" : "[email protected]"
},
"vdsrXOFXRZbAfmoEQ3WEVB1GDDa2" : {
"email" : "[email protected]"
}
}
}
Wenn ich alles löschen sonst außer dem, was in der POJO ist, ist es sehr gut funktioniert.
Also, das ist meine Frage: Gibt es eine Möglichkeit, alles andere in der Datenbank zu ignorieren, außer was es auf meinem POJO gibt?
EDIT
Hier ist meine POJO
public class Train {
private String local;
private String description;
public String data;
public Train() {
}
public String getLocal() {
return local;
}
public void setLocal(String local) {
this.local = local;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Exclude
public String getData(){return data;}
}
Und hier der Aufruf
Firebase ref = new Firebase(Constants.FIREBASE_URL);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
//Getting the data from snapshot
Train train = postSnapshot.getValue(Train.class);
//Adding it to a string
String string = "Local: " + train.getLocal() + "\nDescrição: " + train.getDescription() + "\n\n";
//Displaying it on textview
textViewPersons.setText(string);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
Können Sie den Code zeigen, dass die Daten liest (dh etwas mit einem Aufruf an 'DataSnapshot.getValue()') und Ihre POJO? –
Frank, ich habe mit dem, was du verlangst, editiert. Danke –
@FrankvanPuffelen Sorry, scheint, dass wir retten fast zusammen togheter. (dale grêmio @ LeonardoAssunção): P – adolfosrs