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



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

辅助类

公共类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;
}

}

数据存储到防火区代码

rootNode=FirebaseDatabase.getInstance();
reference=rootNode.getReference("Users");
UserHelperClass helperClass=new UserHelperClass(fullName,city,age,phoneNumber,bloodGroup,age,disease,password);
reference.child(phoneNumber).setValue(helperClass);

从另一个活动获取数据

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");

将数据传递给另一个活动

公共类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这样的正确顺序:您应该遵循以下格式:

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

但你在上课时使用了错误的顺序。使用此格式

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时,将字符串按错误的顺序排列。因此:

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

而不是

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

相关内容

最新更新