Firebase dev here, the websocket API would be much faster (less HTTP overhead and connection negotiation) and has the potential for more concurrent requests.
replace lots of these:
return $http.get('https://hacker-news.firebaseio.com/v0/user/'+name+' + '/.json');
with
return $q(function(resolve, reject){
new Firebase('https://hackernews.firebaseio.com/v0/user/').child(name).on('value', function(snap) {
resolve(snap.val());
}, /*error handler here too*/)
})
https://www.firebase.com/blog/2014-10-07-hacker-news-api-is-firebase.html
https://docs.angularjs.org/api/ng/service/$q
(yes the HN API design is a little funky though, but you can definitely improve the loading times with websockets)