#android #firebase-realtime-database
#Android #firebase-realtime-database
Вопрос:
Я записываю данные в базу данных firebase realtime. Когда некоторые люди регистрируются, возникает ошибка: значения не те, которые я хочу. Только мои друзья там получили эту ошибку. Мои регистрационные коды, формат json и User.class ниже:
{
country: "Benin",
heart: 5,
highscore: "0000000",
mills: 0,
password: "12345678",
points: 0,
status: false,
username: "rr"
}
Приведенные выше значения — это мой формат json при регистрации пользователей. В целом я не получаю эту ошибку. Но некоторые люди регистрируются, мои значения неожиданно меняются:
{
a: "Benin",
b: 5,
c: "0000000",
d: mills,
e: "12345678",
f: 0,
g: false,
h: "rr"
}
Как я могу исправить эту огромную проблему?
Ниже приведен мой регистрационный код (этот код работает, когда я нажимаю кнопку):
databaseReference.child("users").orderByChild("username").equalTo(username).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
//finish();
progressBar.setVisibility(View.GONE);
et_username_layout.setError(getString(R.string.username_already_exists));
}else {
et_username_layout.setError(null);
String id=databaseReference.push().getKey();
Users users=new Users(username,password,"0000000",0, country,0,5,false,null);
databaseReference.child("users").child(id).setValue(users).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
progressBar.setVisibility(View.GONE);
Toast.makeText(RegisterActivity.this, R.string.registration_is_successful, Toast.LENGTH_SHORT).show();
Intent intent_success=new Intent(RegisterActivity.this,LoginActivity.class);
et_username_layout.setError("");
et_password_layout.setError("");
et_confirm_password_layout.setError("");
et_username_layout.getEditText().setText("");
et_password_layout.getEditText().setText("");
et_confirm_password_layout.getEditText().setText("");
country_name_tv.setText(getResources().getString(R.string.select_your_country));
username="";
password="";
confirm_password="";
country="";
//intent_success.setAction(REGISTER_SUCCESSFUL);
//startActivity(intent_success);
//finish();
final AlertDialog.Builder alert_ad=new AlertDialog.Builder(RegisterActivity.this);
alert_ad.setCancelable(false);
View view_Ad=getLayoutInflater().inflate(R.layout.alert_dialog_custum_reg_success,null);
alert_ad.setView(view_Ad);
final AlertDialog dialog=alert_ad.create();
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
Button button=view_Ad.findViewById(R.id.btn_alert_dailog_custom_reg_success);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(RegisterActivity.this,LoginActivity.class));
finish();
}
});
}else {
progressBar.setVisibility(View.GONE);
Toast.makeText(RegisterActivity.this, R.string.registration_is_not_successful, Toast.LENGTH_SHORT).show();
}
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
progressBar.setVisibility(View.GONE);
}
});
и мой User.class
@IgnoreExtraProperties
public class Users {
private String username;
private String password;
private String highscore;
private String country;
private long mills;
private float heart;
private boolean status;
private Friends friends;
private int points;
public Users(String username, String password, String highscore,int points,
String country,long mills,float heart,boolean status,Friends friends) {
this.username = username;
this.password = password;
this.highscore = highscore;
this.country = country;
this.mills=mills;
this.heart=heart;
this.friends=friends;
this.status=status;
this.points=points;
}
public Users() {
}
public int getPoints() {
return points;
}
public void setPoints(int points) {
this.points = points;
}
public Friends getFriends() {
return friends;
}
public void setFriends(Friends friends) {
this.friends = friends;
}
public float getHeart() {
return heart;
}
public void setHeart(float heart) {
this.heart = heart;
}
public long getMills() {
return mills;
}
public void setMills(long mills) {
this.mills = mills;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getHighscore() {
return highscore;
}
public void setHighscore(String highscore) {
this.highscore = highscore;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
Комментарии:
1. поделитесь фрагментами кода
2. Пожалуйста, добавьте код, который вы используете для добавления данных в базу данных. Пожалуйста, также ответьте с помощью @AlexMamo
3. @AlexMamo я добавил свой регистрационный код
4. Пожалуйста, также добавьте содержимое вашего
Users
класса.5. @AlexMamo я тоже добавил свой пользовательский класс