записывает переменную не правильно

У меня есть код который отправляет в firebase firestore имя пользователя (то которое он ввел в поле), но почему-то записывается не просто текст а вот это:

  androidx.appcompat.widget.AppCompatEditText{98e123e VFED..CL. ........ 0,747-1222,952 
  #7f0800f8 app:id/inputName}`

Понятия не имею почему, вот код который отправлеяет это в firebase:

private void signUp() {
    // loading(true);

    FirebaseFirestore database = FirebaseFirestore.getInstance();
    HashMap<String, Object> user = new HashMap<>();
    user.put(Constants.KEY_NAME, binding.inputName.toString());
    database.collection(Constants.KEY_COLLECTION_USERS)
            .add(user)
            .addOnSuccessListener(documentReference -> {
                // loading(false);
                String userName = binding.inputName.getText().toString();

                preferenceManager.putBoolean(Constants.KEY_IS_SIGNED_IN, true);
                preferenceManager.putString(Constants.KEY_USER_ID, documentReference.getId());
                preferenceManager.putString(Constants.KEY_NAME, userName);
                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(intent);
            })
            .addOnFailureListener(exception -> {
                showToast(exception.getMessage());
            });
}

В файле costants лежит вот это:

public static final String KEY_COLLECTION_USERS = "users";
public static final String KEY_NAME = "name";
public static final String KEY_PREFERENCE_NAME = "fllafPreference";
public static final String KEY_IS_SIGNED_IN = "isSignedIn";
public static final String KEY_USER_ID = "userId";
public static final String KEY_USER = "user";

Я новичок в андроид студио поэтому много-чего не знаю.


Ответы (1 шт):

Автор решения: Danila Kartovitskii

В функции signUp() вы пропустили getText(). Т.е вызывали toString(), на AppCompatEditText. Оттуда вы и получали такое имя юзера

androidx.appcompat.widget.AppCompatEditText{98e123e VFED..CL. ........ 0,747-1222,952 #7f0800f8 app:id/inputName}`

Вот исправленная функция:

private void signUp() {
// loading(true);

FirebaseFirestore database = FirebaseFirestore.getInstance();
HashMap<String, Object> user = new HashMap<>();
user.put(Constants.KEY_NAME, binding.inputName.getText()toString());
database.collection(Constants.KEY_COLLECTION_USERS)
        .add(user)
        .addOnSuccessListener(documentReference -> {
            // loading(false);
            String userName = binding.inputName.getText().toString();

            preferenceManager.putBoolean(Constants.KEY_IS_SIGNED_IN, true);
            preferenceManager.putString(Constants.KEY_USER_ID, documentReference.getId());
            preferenceManager.putString(Constants.KEY_NAME, userName);
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);
        })
        .addOnFailureListener(exception -> {
            showToast(exception.getMessage());
        });
}
→ Ссылка