Take value data from EditText and store in firebase path android

Viewed 10

I created 3 EditText for my signup layout. Username, Email, and password. Instead of storing both the email and username value data in the same path, I want to store all the usernames in one path and all the emails in another path. this is an example of my firebase real-time database: image 1

this 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.FirebaseDatabase;

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;
        }
    }
//add strings//
    private void btnSignup() {
        String username = etUsername.getText().toString().trim();
        String email = etEmail.getText().toString().trim();
        String password = etPassword.getText().toString().trim();
//errors for EditText//
        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()){
                            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 enable_two_password//
                                        startActivity(new Intent(activity_Register.this, enable_twoPassword.class));
                                    }else {
                                        Toast.makeText(activity_Register.this, "Failed to create your account at this time.", Toast.LENGTH_SHORT).show();
                                        progressBar.setVisibility(View.GONE);
                                    }
                                }
                            });
                        }else {
                            Toast.makeText(activity_Register.this, "Failed to create your account at this time. Contact mazenoone@gmail.com if this error keeps repeating.", Toast.LENGTH_LONG).show();
                            progressBar.setVisibility(View.GONE);
                        }
                    }

                });
    }
    }
0 Answers
Related