0

I have multiple references to different Firebase database locations and i need to collect this data before proceeding with the code. What is the best way to achieve this? Thanks.

Method to collect Firebase data:

public void getDatafirebase(){

        DatabaseReference ref = ConfigFirebase.getFirebaseDatabase().child("trip").child(idTrip);
        DatabaseReference data1Ref = ref.child("dataTravelers");
        DatabaseReference data2Ref = ref.child("dataCountries");

        //RETRIEVE FIRST DATA
        //===================
        data1Ref.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
               
                   for (DataSnapshot travelers: dataSnapshot.getChildren()) {
                  
                    DataTravelers dataTravelers = travelers.getValue(DataTravelers.class); //Class model
                    listTravelers.add(dataTravelers); 
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                throw databaseError.toException();
            }
        });

        //RETRIEVE SECOND DATA
        //====================
        dataRef2.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        
                for (DataSnapshot countries: dataSnapshot.getChildren()) {
                  
                    DataCountries dataCountries = countries.getValue(DataCountries.class); //Class model
                    listContries.add(dataCountries);
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                throw databaseError.toException();
            }
        });
    }

Method OnCreate:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_trip);
        
        getDatafirebase(); //Getting data from Firebase.
        
        //wait for Firebase data and run code. 
        //...
        //Code
        //...
}
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
MitchSaver
  • 17
  • 5

0 Answers0