[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>