Hi Brad -
Good question!
The best approach here will depend on the number of friends' high scores you want to display for each user. Subscribing to a new piece of data has a bit of network overhead, so if you're subscribing to large numbers of individual locations, you may see some slowness on page load. Conversely, writing to large number of locations can be slow as well.
If you have an asymmetric follower graph, I'd recommend choosing the method that has the lowest max number of reads / writes (so if users follow lots of people, I'd do the denormalize-on-write approach, whereas if users are generally followed by lots of people, I'd do the denormalize-on-read pattern).
If this is a symmetric friend graph, that's probably a wash, so I'd consider what happens more often: a page load, or a new score being recorded? That would help you pick the highest performing solution.
All of that said, if the numbers are smallish (low hundreds of friends or less), performance will probably be fine, so I'd just do whatever is simplest from a code perspective. In my experience, the denormalize-on-read approach is a lot simpler to implement as it keeps your data normalized in Firebase. So I'd start there.
-Andrew