I would say, it depends on your use case.
One of the big advantages of using firebase directly is that it provides real-time database synchronization and supports your app for offline use. If you use Firebase functions, you lose the real-time capabilities and fall back to using regular web API calls.
So if your use case requires real-time and offline capabilities, I would suggest that you continue using direct Firebase access from your clients, even if that means some redundancy.
On the other hand, if you have some business logic or security reasons or some other use case, where you want to pre-process data before sending it to your client, then I would suggest using functions for firebase. If you don’t have real-time or offline capability requirements, you could also leverage functions to avoid maintaining duplicate code.
Hope this helps.