Проблема в вашем коде заключается в том, что в вашем классе CustomListAdapter
есть поле с именем ItemName
, но вы используете метод получения с именем getItemName()
, что неверно, поскольку Firebase ищет в базе данных поле с именем itemName
, а не ItemName
. См строчная i
буква против заглавной буквы I
?
Есть два способа решения этой проблемы. Первым из них будет изменение класса вашей модели путем переименования полей в соответствии с Java Naming Conventions . Итак, ваш модельный класс должен выглядеть так:
public class CustomListAdapter {
private String itemName, quantity, serialNo, supplierName, supplierEmail, supplierPhone;
public CustomListAdapter() {}
public CustomListAdapter(String itemName, String quantity, String serialNo, String supplierName, String supplierEmail, String supplierPhone) {
this.itemName = itemName;
this.quantity = quantity;
this.serialNo = serialNo;
this.supplierName = supplierName;
this.supplierEmail = supplierEmail;
this.supplierPhone = supplierPhone;
}
public String getItemName() { return itemName; }
public String getQuantity() { return quantity; }
public String getSerialNo() { return serialNo; }
public String getSupplierName() { return supplierName; }
public String getSupplierEmail() { return supplierEmail; }
public String getSupplierPhone() { return supplierPhone; }
}
Смотрите в этом примере, есть private
поля и открытые методы получения. Существует также более простое решение - установить значение непосредственно в открытых полях, например так:
public class CustomListAdapter {
public String itemName, quantity, serialNo, supplierName, supplierEmail, supplierPhone;
}
Теперь просто удалите текущие данные и добавьте их снова, используя правильные имена. Это решение будет работать, только если вы находитесь на этапе тестирования.
Существует также второй подход, который заключается в использовании annotations
. Поэтому, если вы предпочитаете использовать частные поля и общедоступные методы получения, вы должны использовать аннотацию PropertyName только перед объектом получения. Итак, ваш CustomListAdapter
класс должен выглядеть так:
public class CustomListAdapter {
private String ItemName;
private String Quantity;
private String SerialNo;
private String SupplierName;
private String SupplierEmail;
private String SupplierPhone;
public CustomListAdapter() {}
public CustomListAdapter(String itemName, String quantity, String serialNo, String supplierName, String supplierEmail, String supplierPhone) {
ItemName = itemName;
Quantity = quantity;
SerialNo = serialNo;
SupplierName = supplierName;
SupplierEmail = supplierEmail;
SupplierPhone = supplierPhone;
}
@PropertyName("ItemName")
public String getItemName() { return ItemName; }
@PropertyName("Quantity")
public String getQuantity() { return Quantity; }
@PropertyName("SerialNo")
public String getSerialNo() { return SerialNo; }
@PropertyName("SupplierName")
public String getSupplierName() { return SupplierName; }
@PropertyName("SupplierEmail")
public String getSupplierEmail() { return SupplierEmail; }
@PropertyName("SupplierPhone")
public String getSupplierPhone() { return SupplierPhone; }
}