Quiero agregar usuarios a Firebase con nombres de usuario, contraseñas y correos electrónicos. Estoy utilizando el método de inicio de sesión con contraseña de correo electrónico, pero ¿cómo puedo agregar el nombre de usuario a la base de datos? Aquí está el código básico que escribí para el método de inicio de sesión de correo electrónico y contraseña:
fun signup(view:View){ val email = binding.emailText.text.toString() val username = binding.usernameText2.text.toString() val password = binding.passwordText2.text.toString() if(email.equals("") || username.equals("") || password.equals("")){ Toast.makeText(this,"Don't Leave them empty!",Toast.LENGTH_LONG).show() }else{ auth.createUserWithEmailAndPassword(email,password).addOnSuccessListener { //sucess val intent = Intent(this@SignupActivity,FeedsActivity::class.java) startActivity(intent) finish() }.addOnFailureListener { //failed Toast.makeText(this,it.localizedMessage,Toast.LENGTH_LONG).show() } } }Para agregar algunos datos a la base de datos, debe elegir qué base de datos desea utilizar. Puede usar Cloud Firestore o Realtime Database . Ahora, dado que la operación de inicio de sesión es asíncrona, el código que escribe datos en la base de datos debe agregarse dentro de la devolución de llamada. Dicho esto, obtenga los datos del objeto FirebaseUser :
val firebaseUser = FirebaseAuth.getInstance().currentUser val email = firebaseUser?.email val displayName = firebaseUser?.displayName val user = mapOf( displayName to displayName, email to email )Y agrégalo a Firestore:
val db = FirebaseFirestore.getInstance() val usersRef = db.collection("users") usersRef.document(uid).set(user)O en la base de datos en tiempo real:
val db = FirebaseDatabase.getInstance().reference val usersRef = db.child("users") usersRef.child(uid).setValue(user)