Read data from Cloud Firestore in Android

Neelanshi
3 min readNov 9, 2020

--

In this tutorial, you will see how to fetch data from Cloud Firestore and use it in your android application.

Prerequisites

Before you start this tutorial make sure you have:

  • Android Studio 3.0 or higher
  • An Android device or an emulator

Create a Firebase Project

Create an android project as usual.

Sign in to your google account in android studio.

Here’s an example of collection you wish to fetch data from:

Let us suppose you want to inflate your data onto this kind of layout:

Profile for a Doctor

First you need to define an instance of your database.

public class Test extends AppCompatActivity {
private FirebaseFirestore yourDB;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
yourDB = FirebaseFirestore.getInstance();
}

Next, you need to define instance of the collection you want to fetch details from. It’s optional to do this inside any method according to your convenience.

@Override
public void onStart(){
super.onStart();

yourDB.collection("Doctors")
.document("abc@xyz.com")
.get()
.addOnCompleteListener
(new OnCompleteListener<DocumentSnapshot>() {

@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {

if(task.isSuccessful()){
DocumentSnapshot doc = task.getResult();

//set name next to Name TextView
(editText1.setText(doc.getString("Name"));

//set email next to Email TextView
(editText2.setText(doc.getString("Email"));
//convert contact field from number to String
//set contact next to Contact TextView
(editText3.setText(doc.getLong("Contact").toString());

//similarly get all the other fields}
}
})
.addOnFailureListener(new OnFailureListener() {

@Override
public void onFailure(@NonNull Exception e) {
//print e.message();
}
});
}

Here, the methods used have following functionalities:

  • .addOnCompleteListener( OnCompleterListener<TResult> listener ): Adds a listener that is called when the Task completes. The listener will be called on main application thread. If the Task is already complete, a call to the listener will be immediately scheduled. If multiple listeners are added, they will be called in the order in which they were added.
  • <DocumentSnapshot>: It contains data read from a document in your Cloud Firestore database. The data can be extracted with the getData () or get(string) methods.
  • onComplete( Task<TResult> task ): Called when the Task completes.
  • .addOnFailureListener( OnFailureListener listener ): Adds a listener that is called if the Task fails. The listener will be called on main application thread. If the Task has already failed, a call to the listener will be immediately scheduled. If multiple listeners are added, they will be called in the order in which they were added.
  • TResult getResult(): Gets the result of the Task, if it has already completed.
  • Boolean isSuccessful(): Returns true if the Task has completed successfully; false otherwise.

--

--

Neelanshi
Neelanshi

Written by Neelanshi

Mobile and Web Developer (FrontEnd)

No responses yet