#android #firebase #firebase-realtime-database
#Android #firebase #firebase-realtime-database
Вопрос:
Я пытаюсь структурировать свои базы данных, и мне было интересно, возможно ли десериализовать объект из Firebase RealDatabase со следующей структурой.
public class Profile{
private String userID;
private TenantProfile tenant;
}
public class TenantProfile{
private String name;
private Room room;
}
public class Room{
private String town;
private int size;
}
Можно ли десериализовать весь профиль объекта из Firebase из одного запроса?
Я просто хочу убедиться, что это возможно, прежде чем проводить рефакторинг моего кода и изменять ссылки на базу данных.
Заранее спасибо.
Комментарии:
1. Вы могли бы написать некоторый тестовый код, чтобы проверить это самостоятельно, не внося никаких существенных изменений.
Ответ №1:
База данных Firebase сериализует / десериализует любые общедоступные поля и общедоступные свойства, которые соответствуют соглашениям об именовании JavaBean для геттеров и сеттеров. Поскольку показанные вами классы не содержат ни того, ни другого, они не будут считывать или записывать какие-либо данные.
Если вы пометите поля как public
или добавите общедоступные получатели / установщики, то запись экземпляра Profile
класса сгенерирует этот JSON:
"userID": {
"tenant": {
"name": "the name",
"room": {
"town": "the town",
"size": 42
}
}
}
И это также формат, который вам нужно будет иметь в базе данных, чтобы прочитать значение обратно.