数据存储在 firebase 实时数据库中的错误字段中

Data storing in wrong field in firebase realtime database

enter code here 我在 android 应用程序中有一个注册表,用户可以在其中输入他们的详细信息。我尝试将数据存储到 firebase 中,数据正在存储,但问题是 phone 数字年龄将存储,年龄字段名称将存储。如何解决这个问题?请帮忙!

帮手class

public class UserHelperClass {

String fullName, city, age, disease, gender, bloodGroup, password, phoneNumber;

 public UserHelperClass() {
}

public UserHelperClass(String fullName, String city, String age, String disease, String gender, String bloodGroup, String password, String phoneNumber) {
    this.fullName = fullName;
    this.city = city;
    this.age = age;
    this.disease = disease;
    this.gender = gender;
    this.bloodGroup = bloodGroup;
    this.password = password;
    this.phoneNumber = phoneNumber;
}

public String getFullName() {
    return fullName;
}

public void setFullName(String fullName) {
    this.fullName = fullName;
}

public String getCity() {
    return city;
}

public void setCity(String city) {
    this.city = city;
}

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}

public String getDisease() {
    return disease;
}

public void setDisease(String disease) {
    this.disease = disease;
}

public String getGender() {
    return gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public String getBloodGroup() {
    return bloodGroup;
}

public void setBloodGroup(String bloodGroup) {
    this.bloodGroup = bloodGroup;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getPhoneNumber() {
    return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
    this.phoneNumber = phoneNumber;
}

}

数据存储到 firebase 代码

    rootNode=FirebaseDatabase.getInstance();
    reference=rootNode.getReference("Users");

    UserHelperClass helperClass=new UserHelperClass(fullName,city,age,phoneNumber,bloodGroup,age,disease,password);

    reference.child(phoneNumber).setValue(helperClass);

从另一个获取数据activity

phoneNumber = getIntent().getStringExtra("keynumber");
    fullName = getIntent().getStringExtra("keyname");
    city = getIntent().getStringExtra("keycity");
    age = getIntent().getStringExtra("keyage");
    disease = getIntent().getStringExtra("keydisease");
    bloodGroup = getIntent().getStringExtra("keybloodgroup");
    gender = getIntent().getStringExtra("keygender");
    password = getIntent().getStringExtra("keypassword");

将数据传递给另一个activity

public class RegisterActivity 扩展 AppCompatActivity {

private AutoCompleteTextView dropDownText;
TextView titletext;
TextView chooegender;
TextView selectage;
TextInputLayout fullname, city, number, disease, password, bloodgroup;
RadioGroup radioGroup;
RadioButton selectedGender, radio1, radio2, radio3;
DatePicker datePicker;
CountryCodePicker countryCodePicker;
Button registerbtn;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);


    dropDownText = findViewById(R.id.dropdown_text);
    titletext = findViewById(R.id.title_text);
    chooegender = findViewById(R.id.choose_gender);
    selectage = findViewById(R.id.select_age);
    fullname = findViewById(R.id.name);
    city = findViewById(R.id.city);
    number = findViewById(R.id.number);
    countryCodePicker = findViewById(R.id.country_code_picker);
    disease = findViewById(R.id.disease);
    bloodgroup = findViewById(R.id.bloodgroup);
    password = findViewById(R.id.password);

    radio1 = findViewById(R.id.radioButton1);
    radio2 = findViewById(R.id.radioButton2);
    radio3 = findViewById(R.id.radioButton3);

    radioGroup = findViewById(R.id.radiogroup);
    datePicker = findViewById(R.id.age_picker);
    selectedGender = findViewById(radioGroup.getCheckedRadioButtonId());
    registerbtn = findViewById(R.id.register);



    String[] item = new String[]{
            "A+Ve",
            "A-Ve",
            "B+Ve",
            "B-Ve",
            "AB+Ve",
            "AB-Ve",
            "O+Ve",
            "O-Ve"

    };
    ArrayAdapter<String> adapter = new ArrayAdapter<>(
            RegisterActivity.this,
            R.layout.dropdown_item,
            item
    );
    dropDownText.setAdapter(adapter);
}

public void callotpverificationscreen(View view) {
    if (!validateFullname() | !validateCity() | !validateDisease() | !validateNumber() | !validatePassword() | !validateGender() | !validateAge())
        return;

    selectedGender = findViewById(radioGroup.getCheckedRadioButtonId());
    String _gender = selectedGender.getText().toString().trim();

    int day = datePicker.getDayOfMonth();
    int month = datePicker.getMonth();
    int year = datePicker.getYear();

    String Age = day + "/" + month + "/" + year;
    String FullName = fullname.getEditText().getText().toString();
    String City = city.getEditText().getText().toString().trim();
    String Disease = disease.getEditText().getText().toString().trim();
    String Blood_group = bloodgroup.getEditText().getText().toString().trim();
    String code = countryCodePicker.getSelectedCountryCodeWithPlus();
    String Number = number.getEditText().getText().toString().trim();
    String CompletePhoneNumber = "+" + countryCodePicker.getFullNumber() + Number;
    String Password = password.getEditText().getText().toString().trim();


    Intent intent = new Intent(getApplicationContext(), OTP_verification.class);
    intent.putExtra("keyname", FullName);
    intent.putExtra("keycity", City);
    intent.putExtra("keyage", Age);
    intent.putExtra("keydisease", Disease);
    intent.putExtra("keybloodgroup", Blood_group);
    intent.putExtra("keynumber", CompletePhoneNumber);
    intent.putExtra("keypassword", Password);
    intent.putExtra("keygender", _gender);
    startActivity(intent);


}

Firebase 数据库图像(https://i.stack.imgur.com/YYoYt.jpg)

您在创建新的 UserHelperClass 时按错误的顺序放置了字符串。所以:

UserHelperClass helperClass = new UserHelperClass(fullName, city, age, disease, gender, bloodGroup, password, phoneNumber);

而不是

UserHelperClass helperClass = new UserHelperClass(fullName,city,age,phoneNumber,bloodGroup,age,disease,password);

您没有像 UserHelperClass 那样遵循正确的顺序: 您应该遵循以下格式:

fullName, city, age, disease, gender, bloodGroup, password, phoneNumber

但是你在调用class时使用了错误的顺序。 使用这种格式

    UserHelperClass helperClass=new UserHelperClass(fullName, city, age, disease, gender, bloodGroup, password, phoneNumber);

尽管如此:

    UserHelperClass helperClass=new UserHelperClass(fullName,city,age,phoneNumber,bloodGroup,age,disease,password);