// Main Acitivity.java
package com.example.firebaseconnection;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.google.firebase.FirebaseApp;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
private TextView titleId;
private EditText stdId,stdName,stdAge,course;
private Button submitBtn, submitBtn1;
//Data Base Connection
private DatabaseReference databaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//FireBase
FirebaseApp.initializeApp(this);
//Wiring Part
titleId = findViewById(R.id.titleId);
stdId = findViewById(R.id.stdID);
stdName = findViewById(R.id.stdName);
stdAge = findViewById(R.id.stdAge);
course = findViewById(R.id.course);
submitBtn = findViewById(R.id.submitBtn);
submitBtn1 = findViewById(R.id.submitBtn1);
//Fire Base Connection
databaseReference = FirebaseDatabase.getInstance().getReference("Student");
//FirebaseDatabase.getInstance() - url is created
//https://sensoriotmobileapp-default-rtdb.firebaseio.com/
//getReference("Student") --> we are creating collection name is Student
submitBtn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
});
submitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Getting user inputs from the UI we created
String name = stdName.getText().toString().trim();
String age = stdAge.getText().toString().trim();
String course1 = course.getText().toString().trim();
if (TextUtils.isEmpty(name) || TextUtils.isEmpty(age) || TextUtils.isEmpty(course1)) {
Toast.makeText(MainActivity.this, "Field are Empty, Please fill it", Toast.LENGTH_SHORT).show();
}
//Reformat it which will accept for the firebase database. in here we can use HashMap
HashMap<String, Object> studentData = new HashMap<String, Object>();
// Formating the data as key value pair
studentData.put("name",name);
studentData.put("age",age);
studentData.put("course", course1);
// Adding the hashmap value into the firebase database
databaseReference.setValue(studentData, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(@Nullable DatabaseError error, @NonNull DatabaseReference ref) {
if (error == null){
Toast.makeText(MainActivity.this, "Successfully Added.", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(MainActivity.this, "Failed to Add data.", Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
}
//activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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:padding="24dp"
android:background="@android:color/white"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal">
<TextView
android:id="@+id/titleId"
android:text="IoT Mobile App"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="32sp"
android:textStyle="bold"
android:layout_marginBottom="24dp" />
<EditText
android:id="@+id/stdID"
android:hint="Enter Student ID"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:padding="12dp"
android:background="@drawable/edittext_background"
android:layout_marginBottom="16dp" />
<EditText
android:id="@+id/stdName"
android:hint="Enter Student Name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:padding="12dp"
android:background="@drawable/edittext_background"
android:layout_marginBottom="16dp" />
<EditText
android:id="@+id/stdAge"
android:hint="Enter Student Age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:padding="12dp"
android:background="@drawable/edittext_background"
android:layout_marginBottom="16dp" />
<EditText
android:id="@+id/course"
android:hint="Enter the Course"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:padding="12dp"
android:background="@drawable/edittext_background"
android:layout_marginBottom="24dp" />
<Button
android:id="@+id/submitBtn"
android:text="Submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/black"
android:textColor="@android:color/white"
android:paddingVertical="12dp"
android:layout_marginTop="16dp"
android:background="@drawable/button_background" />
<Button
android:id="@+id/submitBtn1"
android:text="Next Page Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/black"
android:textColor="@android:color/white"
android:paddingVertical="12dp"
android:layout_marginTop="16dp"
android:background="@drawable/button_background" />
</LinearLayout>
</ScrollView>
//Main_Activity2. java
package com.example.firebaseconnection;
import android.os.Bundle;
import android.widget.EditText;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.google.firebase.FirebaseApp;
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 MainActivity2 extends AppCompatActivity {
private DatabaseReference databaseReference;
private EditText name1,age1,course1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//FireBase
FirebaseApp.initializeApp(this);
name1 = (EditText) findViewById(R.id.nameVal);
age1 = (EditText) findViewById(R.id.ageVal);
course1 = (EditText) findViewById(R.id.courseVal);
databaseReference = FirebaseDatabase.getInstance().getReference("Student");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()){
String name = snapshot.child("name").getValue(String.class);
String age = snapshot.child("age").getValue(String.class);
String course = snapshot.child("course").getValue(String.class);
name1.setText(name);
age1.setText(age);
course1.setText(course);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
}
//activity_main2.xml
<?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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="24dp"
android:background="#F5F5F5"
tools:context=".MainActivity2">
<TextView
android:id="@+id/titleId"
android:text="Firebase Data"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#212121"
android:textSize="28sp"
android:textStyle="bold"
android:layout_marginBottom="32dp" />
<EditText
android:id="@+id/nameVal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:background="@android:drawable/editbox_background"
android:layout_marginBottom="16dp" />
<EditText
android:id="@+id/ageVal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:background="@android:drawable/editbox_background"
android:layout_marginBottom="16dp" />
<EditText
android:id="@+id/courseVal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:background="@android:drawable/editbox_background"
android:layout_marginBottom="16dp" />
</LinearLayout>