Я создаю приложение в Android Studio, которое подключается к базе данных Cloud Firestore.В базе данных у меня есть следующая структура:
Myclass
- name = "test"
- subclass
- 0 = "String 1"
- 1 = "String 2"
Сам класс объявлен так (удалены ненужные биты):
public class Myclass {
private String name;
private String[] subclass;
// CONSTRUCTOR
public Chart() {}
//GETTERS
public String getName() { return this.name; }
// SETTERS
public void setSubclass(String[] thisSubclass) { this.subclass = thisSubclass; }
}
В действии объект Myclass настроенвот так (опять же, ненужные биты удалены):
public class MyclassActivity {
DocumentReference docRef;
Myclass myItem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set up database connection, read in itemId etc...
// ...omitted for clarity...
docRef = databaseRef.collection("myclass").document(itemId);
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
myItem = document.toObject(Myclass.class);
}
}
}
}
Это читает в объекте Myclass с правильно заданным именем, но объект подкласса не устанавливается - он по-прежнему нулевой.
В консоли отладки появляется следующее сообщение:
No setter/field for subclass found on class path.to.app.Myclass
Функция 'setSubclass' неактивна, как будто она никогда не используется.Я уверен, что проблема очевидна, но я не вижу этого.