https://stackoverflow.com/questions/50481821/using-a-listener-after-an-android-application-is-closed
백그라운드 제한때문에 안되나 봅니다.
다시 앱을 실행시킬때 쌓여있던 데이터가 정상적으로 수신되는 이유는 Firebase의 데이터 리스너들은 첫 트리거시 참조된 노드의 모든 데이터를 가져오기 때문에 그런것이지, 서비스가 실행되는 동안 받아져 있던 내용이 아닐거에요. 서버내의 데이터 변화가 있을때 알람을 띄우는 프로그램은 Firebase Functions 이용하시면 원하시는걸 만드실 수 있어요. Firebase클라우드에서 DB변화를 캐치할 수 있거든요. Firebase Functions + FCM 쓰시면 만들려고 하시는 기능을 구현할 수 있습니다.