Send EditText value to firebase path android

Viewed 18

I have 3 EditText. one for username, one for email, and the last for password. Once the user signs up, I want to send the username data to a specific firebase path. In firebase, I created a path called "usernames", I just need to send the value there. Is that possible? I need this so I can store all the usernames in one list, then check if the username is already in use.

here is my code:

package com.example.brotookabreak;

import static android.content.ContentValues.TAG;

    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.app.Dialog;
    import android.content.Intent;
    import android.graphics.Color;
    import android.graphics.drawable.ColorDrawable;
    import android.os.Bundle;
    import android.util.Log;
    import android.util.Patterns;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.google.android.gms.tasks.OnCompleteListener;
    import com.google.android.gms.tasks.OnFailureListener;
    import com.google.android.gms.tasks.Task;
    import com.google.firebase.auth.AuthResult;
    import com.google.firebase.auth.FirebaseAuth;
    import com.google.firebase.auth.SignInMethodQueryResult;
    import com.google.firebase.database.DatabaseReference;
    import com.google.firebase.database.FirebaseDatabase;
    import com.google.firebase.ktx.Firebase;
    
    public class activity_Register extends AppCompatActivity implements View.OnClickListener {
    
        //valuables//
        //dialog//
        private TextView btnShowDialog;
        private Dialog dialog;
        //account register//
        private EditText etUsername, etEmail, etPassword;
        private ProgressBar progressBar;
        private TextView registerUser;
    
        private FirebaseAuth mAuth;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            //Firebase auth register//
            mAuth = FirebaseAuth.getInstance();
    
            registerUser = (Button) findViewById(R.id.btnSignup);
            registerUser.setOnClickListener(this);
    
            etUsername = (EditText) findViewById(R.id.signup_username);
            etEmail = (EditText) findViewById(R.id.signup_email);
            etPassword = (EditText) findViewById(R.id.signup_password);
    
            progressBar = (ProgressBar) findViewById(R.id.progressBar);
    
    
            //create dialog//
            dialog = new Dialog(this);
            dialog.setContentView(R.layout.popup_signup_options);
    
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            dialog.setCancelable(false);
            //apply animation from style//
            dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
    
            //get popup elements id, create name for them and onclick//
            TextView popup_signup_close = dialog.findViewById(R.id.signup_popup_close);
            Button popup_signup_option1 = dialog.findViewById(R.id.signup_popup_option1);
            Button popup_signup_option2 = dialog.findViewById(R.id.signup_popup_option2);
    
            //actions on popup buttons//
            popup_signup_close.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    dialog.dismiss();
                }
            });
    
            popup_signup_option1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    openActivityLogin();
                }
            });
    
            popup_signup_option2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    dialog.dismiss();
                }
            });
            //button show dialog//
            btnShowDialog = findViewById(R.id.popup_signup_options);
            btnShowDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    dialog.show();
                }
            });
        }
        private void openActivityLogin() {
            Intent intent = new Intent(activity_Register.this, MainActivity.class);
            startActivity(intent);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btnSignup:
                    btnSignup();
                    break;
            }
        }
    
        private void btnSignup() {
            String username = etUsername.getText().toString().trim();
            String email = etEmail.getText().toString().trim();
            String password = etPassword.getText().toString().trim();
    
            if(username.isEmpty()){
                etUsername.setError("Username field cannot be empty");
                etUsername.requestFocus();
                return;
            }
            if(email.isEmpty()){
                etUsername.setError("Email field cannot be empty");
                etEmail.requestFocus();
                return;
            }
            if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
                etEmail.setError("The email does not seem to be valid");
                etEmail.requestFocus();
                return;
            }
            if(password.length()< 6){
                etPassword.setError("Your password must have a minimum of 6 characters");
                etPassword.requestFocus();
                return;
            }
            progressBar.setVisibility(View.VISIBLE);
            mAuth.createUserWithEmailAndPassword(email, password)
                    .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if(task.isSuccessful()){
                                final FirebaseDatabase database = FirebaseDatabase.getInstance();
                                DatabaseReference ref = database.getReference("/usernames");
                                User user = new User(username, email);
                                FirebaseDatabase.getInstance().getReference("Users")
                                        .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                                        .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task) {
                                        if (task.isSuccessful()){
                                            progressBar.setVisibility(View.GONE);
                                            //redirect to activity starting//
                                            startActivity(new Intent(activity_Register.this, enable_twoPassword.class));
                                        }else {
                                            Toast.makeText(activity_Register.this, "The email you entered already exists", Toast.LENGTH_SHORT).show();
                                            progressBar.setVisibility(View.GONE);
                                        }
                                    }
                                });
                            }else {
                                Toast.makeText(activity_Register.this, "The email you entered already exists. Contact mazenoone@gmail.com if this error keeps repeating.", Toast.LENGTH_LONG).show();
                                progressBar.setVisibility(View.GONE);
                            }
                        }
    
                    });
        }
    }

Here are my real-time database lists

0 Answers
Related