package com.jdroid.java.firebase; import com.firebase.client.DataSnapshot; import com.firebase.client.FirebaseError; import com.firebase.client.ValueEventListener; import com.jdroid.java.exception.UnexpectedException; public class FirebaseValueEventListener implements ValueEventListener { private FirebaseCountDownLatch done = new FirebaseCountDownLatch(); @Override public void onDataChange(DataSnapshot snapshot) { done.setDataSnapshot(snapshot); done.countDown(); } @Override public void onCancelled(FirebaseError firebaseError) { done.setFirebaseException(new FirebaseException(firebaseError)); done.countDown(); } public void waitOperation() { try { done.await(); if (done.getFirebaseException() != null) { throw done.getFirebaseException(); } } catch (InterruptedException e) { throw new UnexpectedException(e); } } public DataSnapshot getDataSnapshot() { return done.getDataSnapshot(); } }