Uses Firebase's snapshot more in depth