Профиль с редактируемым редактируемым текстом

# #android #firebase #firebase-realtime-database

Вопрос:

Цель моей программы состоит в том, чтобы создать страницу профиля с деталями, которые будут пустыми при первом использовании, затем эти данные можно будет редактировать и сохранять после нажатия кнопки обновления. Тем не менее, я пробовал много разных способов, таких как sharedprefs и firebase. Для меня это просто не работает.

Способ firebase заключается в том, что после нажатия кнопки обновления он просто переходит к основному действию, а затем ничего не обновляет и не меняет.

вот код базы огня

 showAllUserData();   //DB  reference = FirebaseDatabase.getInstance("https://backend-d820a-default-rtdb.firebaseio.com/").getReference("user");  
 private void showAllUserData(){   Intent intent = getIntent();  _NAME = intent.getStringExtra("name");  _NUMBER = intent.getStringExtra("num");  _ADDRESS = intent.getStringExtra("add");  _AGE = intent.getStringExtra("age");  _BDAY = intent.getStringExtra("bday");  _BTYPE = intent.getStringExtra("btype");  _COMORB = intent.getStringExtra("comorb");   editName.setText(_NAME);  editNum.setText(_NUMBER);  editAdd.setText(_ADDRESS);  editAge.setText(_AGE);  editBday.setText(_BDAY);  editBType.setText(_BTYPE);  editComorb.setText(_COMORB);   }   public void update(View view){  if (isNameChanged() || isNumberChanged() || isAddChanged() || isAgeChanged() ||  isBdayChanged() || isBTypeChanged() || isComorbChanged()) {  Toast.makeText(this, "Data has been updated", Toast.LENGTH_LONG).show();  }else{  Toast.makeText(this, "Data his same and cannot be updated", Toast.LENGTH_LONG).show();  }  }   private boolean isComorbChanged() {  if(_COMORB.equals(editComorb.getText().toString())){  reference.child(_COMORB).child("COMORB").setValue(editComorb.getText().toString());  return true;   }else{  return false;  }  }   private boolean isBTypeChanged() {  if(_BTYPE.equals(editBType.getText().toString())){  reference.child(_BTYPE).child("btype").setValue(editBType.getText().toString());  return true;   }else{  return false;  }  }   private boolean isBdayChanged() {  if(_BDAY.equals(editBday.getText().toString())){  reference.child(_BDAY).child("bday").setValue(editBday.getText().toString());  return true;   }else{  return false;  }  }   private boolean isAgeChanged() {  if(_AGE.equals(editAge.getText().toString())){  reference.child(_AGE).child("age").setValue(editAge.getText().toString());  return true;   }else{  return false;  }  }   private boolean isAddChanged() {  if(_NUMBER.equals(editNum.getText().toString())){  reference.child(_NUMBER).child("address").setValue(editNum.getText().toString());  return true;   }else{  return false;  }  }   private boolean isNumberChanged() {  if(_NUMBER.equals(editNum.getText().toString())){  reference.child(_NUMBER).child("numBER").setValue(editNum.getText().toString());  return true;   }else{  return false;  }  }   private boolean isNameChanged() {  if(_NAME.equals(editName.getText().toString())){  reference.child(_NAME).child("name").setValue(editName.getText().toString());  return true;   }else{  return false;  }  

Есть ли более простой способ реализовать это?

Комментарии:

1. «Это просто не работает» — действительно трудно помочь. Я рекомендую пройтись по вашему коду строка за строкой в отладчике и проверить переменные в каждой строке. Когда вы это делаете, какая первая строка не делает того, чего вы от нее ожидаете? Есть ли какие-либо сообщения об ошибках, записанные в logcat для этой конкретной строки?

2. Пожалуйста, отредактируйте свой вопрос и добавьте информацию, которую просил Фрэнк ван Пуффелен, и, пожалуйста, также ответьте @.

3. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.