recursive firebase