[ezcol_1third][/ezcol_1third] [ezcol_1third][/ezcol_1third] [ezcol_1third_end][/ezcol_1third_end]

Login Activity

package com.developandsystem.autenticacionfirebase;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class LoginActivity extends AppCompatActivity implements OnClickListener {
    private AutoCompleteTextView emailView;
    private EditText passwordView;
    protected static String TAG_NAME ="name",TAG_PASS="pass";
    FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        mAuth = FirebaseAuth.getInstance();
        emailView = (AutoCompleteTextView) findViewById(R.id.email);
        passwordView = (EditText) findViewById(R.id.password);

        Button btnIniciarSesion = (Button) findViewById(R.id.email_sign_in_button);
        Button btnRegistrarUsuario = (Button) findViewById(R.id.register_button);
        btnIniciarSesion.setOnClickListener(this);
        btnRegistrarUsuario.setOnClickListener(this);
    }

    private boolean isEmailValid(String email) {
        return email.contains("@");
    }

    private boolean isPasswordValid(String password) {
        return password.length() > 4;
    }

    @Override
    public void onClick(View view) {

        switch (view.getId()) {
            case R.id.email_sign_in_button:
                if (isEmailValid(emailView.getText().toString()) && isPasswordValid(passwordView.getText().toString())) {

                    new UserLoginTask().execute(emailView.getText().toString(), passwordView.getText().toString());

                } else
                    Toast.makeText(getApplicationContext(), "Algún dato es incorrecto", Toast.LENGTH_SHORT).show();

                break;
            case R.id.register_button:
                Intent i = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(i);
                break;
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        mAuth.signOut();
    }

    @Override
    protected void onResume() {
        super.onResume();
        emailView.getText().clear();
        passwordView.getText().clear();
    }
    
    public class UserLoginTask extends AsyncTask<String, Void, Boolean> {


        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

        @Override
        protected Boolean doInBackground(String... strings) {

            mAuth.signInWithEmailAndPassword(emailView.getText().toString(), passwordView.getText().toString())
                    .addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            onPostExecute(task.isSuccessful());
                        }
                    });
            return null;
        }

        @Override
        protected void onPostExecute(Boolean aBoolean) {
            /*i;*/
            if (aBoolean != null) {
                if (aBoolean) {
                    Intent i = new Intent(LoginActivity.this, MainActivity.class);
                    Bundle b = new Bundle();
                    i.putExtra(TAG_NAME, emailView.getText().toString());
                    i.putExtra(TAG_PASS, passwordView.getText().toString());
                    startActivity(i);

                } else
                    Toast.makeText(LoginActivity.this, "El usuario no existe", Toast.LENGTH_SHORT).show();
            }

        }
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    android:background="@color/primary"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.developandsystem.autenticacionfirebase.LoginActivity">


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:paddingBottom="20dp"
        android:text="INICIAR SESIÓN"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
        android:textColor="@color/primary_light"
        android:textStyle="bold" />


    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="70dp">

        <AutoCompleteTextView
            android:id="@+id/email"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@android:color/white"
            android:hint="@string/prompt_email"
            android:inputType="textEmailAddress"
            android:maxLines="1"
            android:singleLine="true" />

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_marginBottom="20dp">

        <EditText
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@android:color/white"
            android:hint="@string/prompt_password"
            android:imeActionId="6"
            android:imeActionLabel="@string/action_sign_in_short"
            android:imeOptions="actionUnspecified"
            android:inputType="textPassword"
            android:maxLines="1"
            android:singleLine="true" />

    </android.support.design.widget.TextInputLayout>

    <Button
        android:id="@+id/email_sign_in_button"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:background="@color/accent"
        android:text="@string/action_sign_in_short"
        android:textStyle="bold" />

    <Button
        android:id="@+id/register_button"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:background="@color/accent"
        android:text="@string/action_register"
        android:textStyle="bold" />

</LinearLayout>

Register Activity

package com.developandsystem.autenticacionfirebase;

import android.os.AsyncTask;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {

    EditText nombre, email, pass;
    Button bRegistrar, bBorrar;
    private FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        nombre = findViewById(R.id.name_register);
        email = findViewById(R.id.email_register);
        pass = findViewById(R.id.password_register);
        bRegistrar = findViewById(R.id.register_user);
        bBorrar = findViewById(R.id.register_clean);
        mAuth = FirebaseAuth.getInstance();
        bRegistrar.setOnClickListener(this);
        bBorrar.setOnClickListener(this);
    }

    private boolean isEmailValid(String email) {
        return email.contains("@");
    }

    private boolean isPasswordValid(String pass) {
        return pass.length() > 4;
    }

    private boolean isNameValid(String name) {
        return name.length() > 2;
    }

    private void cleanField() {
        nombre.getText().clear();
        pass.getText().clear();
        email.getText().clear();
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.register_user:
                if (isEmailValid(email.getText().toString()) && isPasswordValid(pass.getText().toString()) &&
                        isNameValid(nombre.getText().toString())) {
                    new RegisterUserTask().execute();
                } else {
                    Toast.makeText(getApplicationContext(), "Algun dato es incorrecto", Toast.LENGTH_SHORT).show();
                    cleanField();
                }

                break;
            case R.id.register_clean:
                break;
        }
    }

    public class RegisterUserTask extends AsyncTask<Void, Void, Boolean> {

        @Override
        protected Boolean doInBackground(Void... voids) {
            mAuth.createUserWithEmailAndPassword(email.getText().toString(), pass.getText().toString())
                    .addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            onPostExecute(task.isSuccessful());
                        }
                    });

            return null;
        }

        @Override
        protected void onPostExecute(Boolean aBoolean) {
            super.onPostExecute(aBoolean);
            if (aBoolean != null) {
                if (aBoolean) {
                    Toast.makeText(getApplicationContext(), "Usuario creado con exito", Toast.LENGTH_SHORT).show();
                    finish();
                } else {
                    Toast.makeText(getApplicationContext(), "Fallo al crear, por favor intentelo de nuevo", Toast.LENGTH_SHORT).show();
                    cleanField();
                }

            }
        }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/primary"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.developandsystem.autenticacionfirebase.RegisterActivity">

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_marginBottom="20dp">

        <EditText
            android:id="@+id/email_register"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@android:color/white"
            android:hint="@string/email_register"
            android:imeActionId="6"
            android:imeActionLabel="@string/email_register"
            android:imeOptions="actionUnspecified"
            android:inputType="text"
            android:maxLines="1"
            android:singleLine="true" />

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_marginBottom="20dp">

        <EditText
            android:id="@+id/password_register"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@android:color/white"
            android:hint="@string/pass_register"
            android:imeActionId="6"
            android:imeActionLabel="@string/pass_register"
            android:imeOptions="actionUnspecified"
            android:inputType="textPassword"
            android:maxLines="1"
            android:singleLine="true" />

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_marginBottom="20dp">

        <EditText
            android:id="@+id/name_register"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@android:color/white"
            android:hint="@string/name_register"
            android:imeActionId="6"
            android:imeActionLabel="@string/name_register"
            android:imeOptions="actionUnspecified"
            android:inputType="textPassword"
            android:maxLines="1"
            android:singleLine="true" />

    </android.support.design.widget.TextInputLayout>

    <Button
        android:id="@+id/register_user"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:background="@color/accent"
        android:text="@string/action_register"
        android:textStyle="bold" />

    <Button
        android:id="@+id/register_clean"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:background="@color/accent"
        android:text="@string/clear_register"
        android:textStyle="bold" />

</LinearLayout>

Main Activity

package com.developandsystem.autenticacionfirebase;

import android.annotation.SuppressLint;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class MainActivity extends AppCompatActivity {

    private FirebaseAuth mAuth;
    private FirebaseUser user;
    TextView userReg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        userReg = (TextView)findViewById(R.id.edUserReg);
        mAuth = FirebaseAuth.getInstance();
        getData();
        //
    }

    public void getData() {
        Bundle b = getIntent().getExtras();
        mAuth.signInWithEmailAndPassword(b.getString(LoginActivity.TAG_NAME),b.getString(LoginActivity.TAG_PASS))
        .addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()){
                    user = mAuth.getCurrentUser();
                    userReg.setText(user.getEmail().toString());
                }
            }
        });
    }

    @Override
    protected void onStop() {
        super.onStop();
        mAuth.signOut();
        mAuth = null;
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/primary"
    android:orientation="vertical"
    android:gravity="center_vertical"
    tools:context="com.developandsystem.autenticacionfirebase.MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
        android:textColor="@color/primary_light"
        android:id="@+id/edUserReg"
        android:gravity="center_vertical|center_horizontal"/>

</LinearLayout>