ошибка записи данных в базу данных firebase в реальном времени: значения в базе данных firebase отличаются

#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 я тоже добавил свой пользовательский класс