Firebase Authentication signup,login, mail in android

Firebase Authentication




create email and password and send Verification mail to the user

email with firebase.

package com.example.bestnoteapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
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.android.material.snackbar.Snackbar;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

public class signup extends AppCompatActivity {
EditText email,password;
Button signupbtn,loginbtn;
TextView Logintext;
private FirebaseAuth mAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_signup);

email = findViewById(R.id.signupemail);
password = findViewById(R.id.signuppassword);
loginbtn = findViewById(R.id.Login);
signupbtn = findViewById(R.id.signup);
Logintext = findViewById(R.id.Loginbtn);
mAuth = FirebaseAuth.getInstance();



loginbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(signup.this,MainActivity.class);
startActivity(intent);
}
});

Logintext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(signup.this,MainActivity.class);
startActivity(intent);
}
});


signupbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String mail = email.getText().toString().trim();
String pass = password.getText().toString().trim();

if(mail.isEmpty()){
Toast.makeText(getApplicationContext(), "Email is not Blank please enter email", Toast.LENGTH_SHORT).show();
Snackbar mysnackbar = Snackbar.make(loginbtn,"Email is not Blank",Snackbar.LENGTH_SHORT);
mysnackbar.setAction("undo", new View.OnClickListener() {
@Override
public void onClick(View view) {
mysnackbar.dismiss();
}
});
mysnackbar.show();
}else if(pass.isEmpty()){
Toast.makeText(getApplicationContext(), "Password is not Blank", Toast.LENGTH_SHORT).show();
}else if(pass.length() < 5){
Toast.makeText(signup.this, "Password char most be greater then 5", Toast.LENGTH_SHORT).show();
}else{
// Intent intent = new Intent(signup.this,MainActivity.class);
// startActivity(intent);
mAuth.createUserWithEmailAndPassword(mail,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(getApplicationContext(), "successfully register", Toast.LENGTH_SHORT).show();
sendEmailVerification();
}else{
Toast.makeText(getApplicationContext(), "Failed to register", Toast.LENGTH_SHORT).show();
}
}
});

}
}
});



}
//send email verification
private void sendEmailVerification(){
FirebaseUser firebaseUser = mAuth.getCurrentUser();

if(firebaseUser != null){
firebaseUser.sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(getApplicationContext(), "verification email is send and Login again", Toast.LENGTH_SHORT).show();
mAuth.signOut();
finish();
startActivity(new Intent(signup.this,MainActivity.class));
}
});
}
}


}

SignIn with Email and Password

package com.example.bestnoteapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
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;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

public class MainActivity extends AppCompatActivity {
EditText email,password;
Button logins,signup;
TextView forgotpassword;
FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseAuth = FirebaseAuth.getInstance();
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();

if(firebaseUser != null){
startActivity(new Intent(getApplicationContext(),notesactivity.class));
}

// Write a message to the database
// insert data into realtime database
// FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
// DatabaseReference databaseReference = firebaseDatabase.getReference();
// databaseReference.child("user").child("userId").setValue(1);
// databaseReference.child("user").child("name").setValue("krishna");

FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
DatabaseReference databaseReference = firebaseDatabase.getReference().child("Books");
// databaseReference.child("user").child("email").setValue(email.getText().toString());
// databaseReference.child("user").child("password").setValue(password.getText().toString());


email = findViewById(R.id.login_email);
password = findViewById(R.id.login_password);
logins = findViewById(R.id.login_button);
signup = findViewById(R.id.signupbtns);
forgotpassword = findViewById(R.id.forgot_password);


logins.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String emails = email.getText().toString().toString();
String passwords = password.getText().toString().toString();
if(emails.isEmpty() || passwords.isEmpty()){
Toast.makeText(MainActivity.this, "Email and password most be field", Toast.LENGTH_SHORT).show();
}else{
// Intent intent = new Intent(MainActivity.this,forgot_password.class);
// startActivity(intent);
firebaseAuth.signInWithEmailAndPassword(emails,passwords).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
CheckMailVerified();
// Toast.makeText(MainActivity.this, "you are Login", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "Please Enter a correct details", Toast.LENGTH_SHORT).show();
}
}
});
}
}
});

signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,signup.class);
startActivity(intent);
}
});

forgotpassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,forgot_password.class);
startActivity(intent);
}
});
}

private void CheckMailVerified(){
FirebaseUser currentUser = firebaseAuth.getCurrentUser();
if(currentUser.isEmailVerified() == true){
Toast.makeText(getApplicationContext(), "Logged In", Toast.LENGTH_SHORT).show();
finish();
startActivity(new Intent(MainActivity.this,signup.class));
}else{
Toast.makeText(getApplicationContext(), "Verified your mail first", Toast.LENGTH_SHORT).show();
firebaseAuth.signOut();
startActivity(new Intent(MainActivity.this,notesactivity.class));
}
}

}

Forgot Password

package com.example.bestnoteapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
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.FirebaseAuth;

public class forgot_password extends AppCompatActivity {

EditText email;
Button recover;
TextView gobacktoLogin;
FirebaseAuth firebaseAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_forgot_password);
email = findViewById(R.id.email);
recover = findViewById(R.id.recover);
gobacktoLogin = findViewById(R.id.gobacktoLogin);
firebaseAuth = FirebaseAuth.getInstance();



recover.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String emailtext = email.getText().toString().trim();
if(emailtext.isEmpty()){
Toast.makeText(forgot_password.this, "Email Can't be blank", Toast.LENGTH_SHORT).show();
}else{
FirebaseAuth.getInstance().sendPasswordResetEmail(emailtext)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(forgot_password.this, "your password is Forgot successfully", Toast.LENGTH_SHORT).show();
finish();
Intent intent = new Intent(forgot_password.this,signup.class);
startActivity(intent);
}else{
Toast.makeText(forgot_password.this, "Email is wrong,Account doesn't Exist", Toast.LENGTH_SHORT).show();
}
}
});


}
}
});
gobacktoLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(forgot_password.this, MainActivity.class);
startActivity(intent);
}
});
}
}


How to insert data into firebase database:
 First create a java class file inside the class create constructor, Geter and setter.

package com.example.androidtutorial;

public class student {
String name;
String desc;
String Address;

public student(String name, String desc, String address) {
this.name = name;
this.desc = desc;
this.Address = address;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDesc() {
return desc;
}

public void setDesc(String desc) {
this.desc = desc;
}

public String getAddress() {
return Address;
}

public void setAddress(String address) {
this.Address = address;
}
}

inside mainpage: call the constructor

    private void Submitdata(){
submit.setOnClickListener(v->{
String yname = name.getText().toString();
String yaddress = address.getText().toString();
String ydesc = desc.getText().toString();

if(yname.isEmpty() || yaddress.isEmpty() || ydesc.isEmpty()){
Toast.makeText(this, "All Field are available", Toast.LENGTH_SHORT).show();
}else{
Intent intent = new Intent(this,GetuserDataIntent.class);
intent.putExtra("name",yname);
intent.putExtra("address",yaddress);
intent.putExtra("desc",ydesc);
intent.putExtra("image",R.drawable.ic_launcher_background);

startActivity(intent);
Toast.makeText(this, "submit data", Toast.LENGTH_SHORT).show();

student = firebaseDatabase.getReference().child("student");
// creating a constructor and set value
student data = new student(yname,ydesc,yaddress);
student.push().setValue(data);
}
});
}

Insert only one data in firbase Realtime database

 private void insertdata(){
DatabaseReference name = firebaseDatabase.getReference("UserData").child("UserId").child("name");
DatabaseReference desc = firebaseDatabase.getReference("UserData").child("UserId").child("desc");
DatabaseReference address = firebaseDatabase.getReference("UserData").child("UserId").child("address");
name.setValue("Krishna");
desc.setValue("Hello world");
address.setValue("Walling 13");
}





Comments

Popular posts from this blog

Media Player in android

Fetch data from Api in android using Volley library

GridView in android