Я использую последнюю версию. Я указал в своем вопросе, что я пытался использовать
дал объект для отправки некоторых данных в firebase. В качестве примера я использую пользовательский пример firebase:
public class User {
public String username;
public String email;
public User() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public User(String username, String email) {
this.username = username;
this.email = email;
}
}
Я хочу закодировать имена свойств, которые отправляются в firebase. В настоящее время ключи отправляются с использованием имен переменных. Я хочу закодировать ключи что-то вродеUseraname
а такжеEmail
, любитьGson
делается. Я не хочу менять имена переменных.
@SerializateName("Username")
public String username;
@SerializateName("Username")
public String email;
я использовал@SerializateName()
, но не работает. То же самое с@PropertyName
который используется Firebse, не работает. Что я могу использовать для сериализации пользовательских ключей?
Обновление 1
public class Pojo {
@PropertyName("Guid")
public String guid;
@PropertyName("Name")
public String name;
public String getPojoGuid() {
return guid;
}
public void setPojoGuid(String guid) {
this.guid = guid;
}
}
Как вы можете видеть на изображении, он сохраняет ключи на основе имен переменных. Я изменил имя свойства из аннотации для одного поля, и когда я сохраняю его, он игнорирует его, но когда я изменяю имя переменной, он сохраняет как новую запись с ключом для этого нового имени переменной.
Вэто документация это методtoMap()
, Если я так делаю, то работает (мне не удобно), но не работает с@PropertyName
.
Обновление 2
Если я пометить геттеры и сеттеры с@Exclude
и класс с@IgnoreExtraProperties
работает. Я не должен использоватьtoMap()
Пример метода из документации. Использует указанное имя от@PropertyName
, Не очень хорошая вещь, на мой взгляд, создавать путаницы.