Android chat crashes on DataSnapshot.getValue() for timestampСохранение firebase ServerValue.TIMESTAMP на Автозначение POJOs
Я пытаюсь добавить свойство временной метки к моему POJO. Вышеприведенное решение говорит джексону игнорировать действительный элемент данных, который используется приложением. Я использую AutoValue и не могу понять, как я мог бы аннотировать мой класс, чтобы заставить его работать.
@AutoValue
public abstract class Pojo {
@JsonProperty("id") public abstract String id();
@JsonProperty("name") public abstract String name();
@JsonProperty("date") public abstract long date();
@JsonCreator public static Pojo create(String id, String name, long date) {
return new AutoValue_Pojo(id, name, date);
}
}
Я попытался с помощью пользовательского сериалайзер:
public class TimeStampSerializer extends JsonSerializer<Long> {
@Override public void serialize(Long value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString(ServerValue.TIMESTAMP.toString());
}
}
но написал строку date: "{.sv=timestamp}"
в firebase вместо генерации метки времени
пожалуйста, прочитайте ответ в той ссылке, которую вы уже знаете: «Firebase.ServerValue.TIMESTAMP задается как карта (contai ning {.sv: "timestamp"}), который сообщает Firebase, чтобы заполнить это поле временем сервера. Когда эти данные считываются, это фактическая временная метка unix, которая является Long "(.sv = timestamp - заполнитель, заполненный сервером Firebase, вы должны отправить его в fb, и результат будет содержать ожидаемое время) –
Да, но вместо того, чтобы создавать два POJO, один для записи/сериализации с использованием свойства map и один для чтения с длинным, я хотел бы знать, может ли его аннотировать мой класс autovalue, чтобы он мог его использовать, используя один. –