The (JS) frontend SDK can be set to either online or offline mode. When in online mode, it seems to insist on downloading full copies of records, even when a version is somewhere in the local cache, slowing things down and incurring cost. Some optimisation could have been applied here, I didn't find anything about it in the docs. Does this match others experience?
Firebase works until you want a different conflict resolution then last-write-wins.
It is also only offline first if the user is authenticated. Otherwise you need a connection to the servers before using the local state.