我正在使用Firebase数据库,以下是我的java类结构。将我的第一个对象保存在Firebase数据库中后,我意识到这些键会自动转换为Firebase数据库中的小写键。有什么解决方案可以在保存对象的同时保留大小写。

public class Student {

String NAME;

String ROLL_NUMBER;

String USER_NAME;

String MAIL_ID;

String PASSWORD;


public Student() {
}

public Student(String NAME, String ROLL_NUMBER, String PASSWORD, String MAIL_ID, String USER_NAME) {
    this.NAME = NAME;
    this.ROLL_NUMBER = ROLL_NUMBER;
    this.PASSWORD = PASSWORD;
    this.MAIL_ID = MAIL_ID;
    this.USER_NAME = USER_NAME;
}

public String getNAME() {
    return NAME;
}

public String getROLL_NUMBER() {
    return ROLL_NUMBER;
}

public String getPASSWORD() {
    return PASSWORD;
}

public String getMAIL_ID() {
    return MAIL_ID;
}

public String getUSER_NAME() {
    return USER_NAME;
}


}

我也尝试过使用@SerializedName也没有任何区别。
这是Firebase数据库中的键值对

"-LMqLmS09gGKjR-s9CML" : {
  "mail_ID" : "gyana@gmail.com",
  "name" : "Gyanaranjan",
  "password" : "123456",
  "roll_NUMBER" : "1001028",
  "user_NAME" : "gyan1028"
},
 "-LMqMPegnxHp8l4efj_J" : {
  "mail_ID" : "shyamu@gmail.com",
  "name" : "Shyama G",
  "password" : "113456",
  "roll_NUMBER" : "1001056",
  "user_NAME" : "shyamla1056"
}


here is the screenshot of firebase database

最佳答案

根据您的评论,您需要知道Firebase实时数据库遵循Java Bean属性命名约定,以在Java对象与节点中的字段之间进行映射。

下面是一些有关特定方法名称如何映射到属性名称(以及此字段名称)的示例:

public String getName(); // getter for property "name"
public void setName(String name); // setter for property "name"

public String getRollNumber(); // getter for property "rollNumber"
public void setRollNumber(String rollNumber); // setter for property "rollNumber"


使用getterssetters不是强制性的。在所有这些情况下,您也可以不使用getter / setter,而仅使用公共字段:

public String name;
public String rollNumber;


这是绝对安全的。因此,不需要同时具有getter和setter。如果只有吸气剂,Firebase将直接设置相应的字段。但是,这确实要求您的字段名称遵循命名约定,以便Firebase可以找到要设置的正确字段。

有关其他信息,您也可以从此post看我的回答。

10-02 07:18
查看更多