package com.jdroid.android.firebase.database; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.ValueEventListener; import com.jdroid.java.exception.UnexpectedException; public class FirebaseDatabaseValueEventListener implements ValueEventListener { private FirebaseDatabaseCountDownLatch done = new FirebaseDatabaseCountDownLatch(); @Override public void onDataChange(DataSnapshot snapshot) { done.setDataSnapshot(snapshot); done.countDown(); } @Override public void onCancelled(DatabaseError databaseError) { done.setFirebaseDatabaseException(new FirebaseDatabaseException(databaseError)); done.countDown(); } public void waitOperation() { try { done.await(); if (done.getFirebaseDatabaseException() != null) { throw done.getFirebaseDatabaseException(); } } catch (InterruptedException e) { throw new UnexpectedException(e); } } public DataSnapshot getDataSnapshot() { return done.getDataSnapshot(); } }