Я столкнулся с проблемой с addTextChangedListener, который не полностью удалял текст в Firebase.Я приведу пример, я получаю свое имя от Firebase и setText()
на myname
.Так что myname
editText показал мое имя там.Когда я захотел отредактировать, я нажимаю на editText, чтобы я мог удалить слово по возврату, но когда я возвращаюсь слишком быстро, текст в editText был полностью удален (на стороне клиента), и некоторые слова не были удалены на Firebase (сервербоковая сторона).
Это означает, что значение удаляемого текста не согласовано и точно с клиентской и серверной стороны.Обычный текст моего имени - Томми, поэтому я возвращаюсь назад, пока не исчезнет слово Томми, так что оно было очищено, но в Firebase он все еще показывает первый символ «Т» моего имени.
Но когда я очищал все слова в editText, я вводил новое слово, такое как "Hello", Firebase будет хранить Hello.
Код:
//delcare myname
private MultiAutoCompleteTextView myname;
myname.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(!myname.getText().toString().trim().isEmpty()){
DatabaseReference nameRef = FirebaseDatabase.getInstance().getReference()
.child(Config.URL_USER);
nameRef.child(uid).child("myName").setValue(userET.getText().toString());
parentActivity.updateHeaderUserName(myname.getText().toString());
}
}
});