您的代码中的问题在于您的CustomListAdapter
类一个名为ItemName
但你正在使用一个名为的吸气剂getItemName()
,这是不正确的,因为 Firebase 正在数据库中查找名为的字段itemName
并不是ItemName
。看小写的i
字母与大写字母I
?
有两种方法可以解决此问题。第一个是通过根据以下内容重命名字段来更改模型类Java 命名约定 https://www.javatpoint.com/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
。因此,如果您更喜欢使用私有字段和公共 getter,则应该使用属性名称 https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/PropertyName注释仅在 getter 前面。所以你的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; }
}