how to Store data in firebase realtime database in android

 Store data in firebase realtime database as a Table Form:



  Step 1-we resistor user on fireBase :
Ragistration Activity :
public class RagistrationActivity extends AppCompatActivity {
private EditText emailTV, passwordTV,name,confirm_password,Contact_Number;
private Button regBtn;
private ProgressBar progressBar;



private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ragistration);

firebaseAuth = FirebaseAuth.getInstance();
firebaseFirestore = firebaseFirestore.getInstance();

if(LoginUtils.isLogin(RagistrationActivity.this)){
Intent intent=new Intent(RagistrationActivity.this,MainActivity.class);
startActivity(intent);
finish();
}else {
/* Intent intent=new Intent(loginActivity.this,RagistrationActivity.class);
startActivity(intent);*/
}

initializeUI();

regBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerNewUser();
}
});
}
private void registerNewUser() {
progressBar.setVisibility(View.VISIBLE);

String email, password,UserName,UserConfirm_password,UserContact_Number;
email = emailTV.getText().toString();
password = passwordTV.getText().toString();

UserName = name.getText().toString();
UserConfirm_password =confirm_password.getText().toString();
UserContact_Number =Contact_Number.getText().toString();



if (TextUtils.isEmpty(email)) {
Toast.makeText(getApplicationContext(), "Please enter email...", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(getApplicationContext(), "Please enter password!", Toast.LENGTH_LONG).show();
return;
}

if (TextUtils.isEmpty(UserName)) {
Toast.makeText(getApplicationContext(), "Please enter Name...", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(UserConfirm_password)) {
Toast.makeText(getApplicationContext(), "Please enter Confirm password!", Toast.LENGTH_LONG).show();
return;
}

if (TextUtils.isEmpty(UserContact_Number)) {
Toast.makeText(getApplicationContext(), "Please enter Contact Number!", Toast.LENGTH_LONG).show();
return;
}
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Map<String,Object> userdata = new HashMap<>();

userdata.put("fullname",name.getText().toString());
userdata.put("email",emailTV.getText().toString());
userdata.put("password",confirm_password.getText().toString());
userdata.put("contactnumber",Contact_Number.getText().toString());



firebaseFirestore.collection("USERS").document(firebaseAuth.getUid())
.set(userdata)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){

CollectionReference userdatareference=firebaseFirestore.collection("USERS").document(firebaseAuth.getUid()).collection("USER_DATA");

/////MAPS

Map<String,Object> viewlistMap = new HashMap<>();
viewlistMap.put("view_size", (long) 0);

Map<String,Object> likeMap = new HashMap<>();
likeMap.put("like_size", (long) 0);

Map<String,Object> subMap = new HashMap<>();
subMap.put("sub_size", (long) 0);


/////MAPS


final List<String> documentNames = new ArrayList<>();
documentNames.add("VIEW");
documentNames.add("LIKE");
documentNames.add("SUB");


List<Map<String,Object>> documentFields = new ArrayList<>();
documentFields.add(viewlistMap);
documentFields.add(likeMap);
documentFields.add(subMap);

for(int x =0; x < documentNames.size(); x++){
final int finalX = x;
userdatareference.document(documentNames.get(x))
.set(documentFields.get(x)).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
if(finalX == documentNames.size() -1) {
//mainIntent();
}
}else {


String error = task.getException().getMessage();
Toast.makeText(RagistrationActivity.this, error, Toast.LENGTH_SHORT).show();
}
}
});
}

}else {

String error = task.getException().getMessage();
Toast.makeText(RagistrationActivity.this, error, Toast.LENGTH_SHORT).show();
}
}
});



Toast.makeText(getApplicationContext(), "Registration successful!", Toast.LENGTH_LONG).show();
SharedPreferenceUtils.getInstance(RagistrationActivity.this).putBoolean(AppConstants.IS_USER_LOGIN, true);
progressBar.setVisibility(View.GONE);

Intent intent = new Intent(RagistrationActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
else {
Toast.makeText(getApplicationContext(), "Invalid credentials", Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
}

private void initializeUI() {
emailTV = findViewById(R.id.email);
passwordTV = findViewById(R.id.password);
regBtn = findViewById(R.id.register);
progressBar = findViewById(R.id.progressBar);


name = findViewById(R.id.name);
confirm_password = findViewById(R.id.confirm_password);
Contact_Number = findViewById(R.id.Contact_Number);
}
}

how to retrieve data from firebase realtime database in android :

 In MyAccount  Activity we take data frome firebase and set that data on views:
public class MyAccountActivity extends BaseActivity {
TextView name,email,Contact_Number;
private FirebaseFirestore db;
@Override
protected void initViews() {
name=findViewById(R.id.name);
email=findViewById(R.id.email);
Contact_Number=findViewById(R.id.Contact_Number);
db = FirebaseFirestore.getInstance();

db.collection("USERS").document(FirebaseAuth.getInstance().getCurrentUser().getUid())
.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {


name.setText(documentSnapshot.getString("fullname"));
email.setText(documentSnapshot.getString("email"));
Contact_Number.setText(documentSnapshot.getString("contactnumber"));


}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MyAccountActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}

@Override
protected void initContext() {

}

@Override
protected void initListners() {

}

@Override
protected boolean isActionBar() {
return true;
}

@Override
protected boolean isHomeButton() {
return true;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_account);
}

@Override
public void onClick(View view) {

}

@Override
public void onAlertClicked(int alertType) {

}
}
My Account Activity Xml Code:
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
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="wrap_content"
app:cardCornerRadius="8dp"
android:layout_margin="8dp"
tools:context=".Activity.MyAccountActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="vertical">

<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name "
app:boxStrokeColor="@color/colorPrimary"
app:boxStrokeWidthFocused="2dp"
app:endIconMode="clear_text"
app:endIconTint="@color/colorPrimary"
app:hintTextColor="@color/black"
app:startIconDrawable="@drawable/profile_iconn">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress">

</com.google.android.material.textfield.TextInputEditText>

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Email-ID"
app:boxStrokeColor="@color/colorPrimary"
app:boxStrokeWidthFocused="2dp"
android:layout_marginTop="8dp"
app:endIconMode="clear_text"
app:endIconTint="@color/colorPrimary"
app:hintTextColor="@color/black"
app:startIconDrawable="@drawable/email">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress">

</com.google.android.material.textfield.TextInputEditText>

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Contact Number"
app:boxStrokeColor="@color/colorPrimary"
app:boxStrokeWidthFocused="2dp"
app:endIconMode="clear_text"
android:layout_marginTop="8dp"
app:endIconTint="@color/colorPrimary"
app:hintTextColor="@color/black"
app:startIconDrawable="@drawable/call_24">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/Contact_Number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress">

</com.google.android.material.textfield.TextInputEditText>

</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>

Rajeshbhatt12

My name is Rajesh Bhatt. I am working as a senior android developer . I have created this blog for kotlin ,java and Android Development interview questions etc..

Previous Post Next Post