Я пытаюсь сделать запрос к моему приложению с Firebase. Я могу сохранить данные, но когда я пытаюсь их извлечения, я получаю эту ошибкуИгнорировать то, что не внутри POJO
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)
Я уже понять, в чем проблема.
Моя база данных была как та
{
"Train" : {
"description" : "dbdjem",
"local" : "shsusn"
},
"users" : {
"f01dfa18-54ac-41ea-97ff-97d0e40b872b" : {
"email" : "[email protected]"
},
"vdsrXOFXRZbAfmoEQ3WEVB1GDDa2" : {
"email" : "[email protected]"
}
}
}
Если удалить все остальное, кроме того, что в POJO, она работает очень хорошо.
Итак, объяснил это, мой вопрос: есть ли способ игнорировать все остальное в базе данных, кроме того, что есть на моем POJO?
EDIT
Вот мой 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;}
}
А вот вызов
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());
}
});
Можете ли вы показать код, который читает данные (то есть что-то с вызовом 'DataSnapshot.getValue()') и ваш POJO? –
Фрэнк, я отредактировал то, что вы просили. Спасибо –
@FrankvanPuffelen Извините, кажется, что мы ударили, чтобы спасти почти togheter. (dale grêmio @ LeonardoAssunção): P – adolfosrs