Вы получаете следующую ошибку:
FATAL EXCEPTION: ... does not define a no-argument constructor
Поскольку ваш класс RvClass
не определяет no-argument constructor
.
JavaBeans , требуется конструктор без аргументов должно присутствовать.
В Java, когда класс вообще не имеет конструкторов, по умолчанию автоматически добавляется компилятор no-argument constructor
.В тот момент, когда вы определяете любой конструктор в классе, конструктор по умолчанию без аргументов исчезает.
В вашем коде ваш класс RvClass
определяет такой конструктор, который содержит три аргумента:
public RvClass(String title, String message, String time) {}
Пока этот конструктор присутствует, и вы не определяете конструктор без аргументов, у этого класса его не будет.
Чтобы решить эту проблему, либо удалите этот конструктор из класса, либо добавьте вручнуюконструктор без аргументов, как показано ниже:
public RvClass() {}
Когда SDK базы данных Firebase Realtime десериализует объекты, поступающие из базы данных, требуется, чтобы у всех используемых объектов был этот конструктор, чтобы он мог использоватьэто для создания объекта.Поля в объектах устанавливаются с помощью общедоступных методов установки или прямого доступа к общедоступным членам.
Если ваш класс RvClass не имеет общедоступного конструктора без аргументов, SDK действительно не знает, как создатьпример этого.Так что это обязательно.
Также обратите внимание, что сеттеры и геттеры не требуются.Установщики всегда являются необязательными, потому что если для свойства JSON нет установщика, клиент Firebase установит значение непосредственно в поле.Конструктор с аргументами также не требуется.Оба идиоматичны, и есть хорошие случаи, когда занятия проводятся без них.Если вы сделаете поля общедоступными, получатели также будут необязательными.