Не срабатывает регистрация и авторизация по имени в приложении для Android: в чем причина?

Такая проблема: пытался реализовать регистрацию и авторизацию в приложении, но последняя должна проходить не по логину и паролю, а по имени. И вот, за неимением материалов, как это делать, пытался думать, как это реализовать. Написал код на странице регистрации и авторизации, чтобы записывались в БД данные имени, фамилии и email, но авторизацию нужно сделать по имени. Вот я и подставил в коде авторизации "authLI.signInWithCustomToken(firstNamelogin.getText().toString())" вместо "auth.signInWithEmailAndPassword()", и потерпел фиаско. Во-первых, в БД добавилась полностью пустая запись, ни имени, ни фамилии, ни имейла, а по имени она пользователя находить не может. Долго выбирал способ регистрации также, очевидно с имейлом и паролем мне не подходил, пытался настроить пользовательский вход по Open ID Connect, но не знаю, что туда писать. В общем подскажите, как внятно реализовать идею входа пользователя по имени (без пароля)?

Вот код Activity регистрации на Kotlin:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val firstName: EditText = findViewById(R.id.firstName)
        val lastName: EditText = findViewById(R.id.lastName)
        val email: EditText = findViewById(R.id.e_mail)
        val loginButton_si: TextView = findViewById(R.id.login_text)
        val signInButton: Button = findViewById(R.id.button)
        val auth: FirebaseAuth
        val db: FirebaseDatabase
        val users: DatabaseReference

        loginButton_si.setOnClickListener{
            val intent = Intent(this,LoginActivity::class.java)
            startActivity(intent)
        }

        auth = FirebaseAuth.getInstance()
        db= FirebaseDatabase.getInstance()
        users = db.getReference("Users")

        signInButton.setOnClickListener {
            if (TextUtils.isEmpty(firstName.getText().toString()) || TextUtils.isEmpty(lastName.getText().toString()) || TextUtils.isEmpty(email.getText().toString())) {
                Toast.makeText(this, "Enter First name, Last Name and E-mail!", Toast.LENGTH_SHORT).show()
            }
            else{
                auth.createUserWithEmailAndPassword(email.getText().toString(),"")
                    .addOnSuccessListener {
                        val user = User()
                        user.setFirstNameUser(firstName.getText().toString())
                        user.setLastnameUser(lastName.getText().toString())
                        user.setEmailUser(email.getText().toString())

                        users.child(user.getFirstNameUser()).setValue(user)
                            .addOnSuccessListener {
                                val intentAuth= Intent(this,Page1Activity::class.java)
                                startActivity(intentAuth)
                            }
                    }
            }
        }
    }
}

Это код авторизации, который я пытался реализовать:

class LoginActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_log_in)

        val firstNamelogin: EditText = findViewById(R.id.firstNameLI)
        val btnLI: Button = findViewById(R.id.buttonLI)
        val authLI: FirebaseAuth
        val dbLI: FirebaseDatabase
        val usersLI: DatabaseReference

        authLI = FirebaseAuth.getInstance()
        dbLI= FirebaseDatabase.getInstance()
        usersLI = dbLI.getReference("Users")

        btnLI.setOnClickListener {
            if (TextUtils.isEmpty(firstNamelogin.getText().toString())) {
                Toast.makeText(this, "Enter First name!", Toast.LENGTH_SHORT).show()
            }
            else{
                authLI.signInWithCustomToken(firstNamelogin.getText().toString())
                    .addOnSuccessListener {
                        val intentLI= Intent(this,Page1Activity::class.java)
                        startActivity(intentLI)
                        finish()
                    }.addOnFailureListener {
                        Toast.makeText(this, "Wrong name or password", Toast.LENGTH_SHORT).show()
                    }
            }
        }
    }
}

Это класс User на Java для моделирования данных пользователя (планирую его позже переконвертировать в Kotlin)

public class User {
    private String firstNameUser, lastnameUser, emailUser;

    public User(){}

    public User(String firstNameUser, String lastnameUser, String emailUser) {
        this.firstNameUser = firstNameUser;
        this.lastnameUser = lastnameUser;
        this.emailUser = emailUser;
    }

    public String getFirstNameUser() {
        return firstNameUser;
    }

    public void setFirstNameUser(String firstNameUser) {
        this.firstNameUser = firstNameUser;
    }

    public String getLastnameUser() {
        return lastnameUser;
    }

    public void setLastnameUser(String lastnameUser) {
        this.lastnameUser = lastnameUser;
    }

    public String getEmailUser() {
        return emailUser;
    }

    public void setEmailUser(String emailUser) {
        this.emailUser = emailUser;
    }
}

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