I'm looking for guidance from a system design standpoint on which of the two alternatives is better.
IMHO, the question shouldn't be asked, which is better because each one of those products, Cloud Firestore and Cloud Functions for Firebase are two totally different products with different mechanisms but the same purpose.
As also Jack Woodward mentioned in his answer, the first solution can help you keep your data in-sync across client apps. As in the case of Firebase Realtime database the main feature is the real-time feature. In both bases, your data is stored as JSON and synchronized in real-time to each connected client.
Regarding the second option, as in the official documentation:
Cloud Functions for Firebase lets you automatically run backend code in response to events triggered by Firebase features and HTTPS requests. Your code is stored in Google's cloud and runs in a managed environment. There's no need to manage and scale your own servers.
If you are simply asking what can you do with Cloud Functions, please see the use cases of Cloud Functions:
- Notify users when something interesting happens.
- Perform Realtime Database sanitization and maintenance.
- Execute intensive tasks in the cloud instead of in your app.
- Integrate with third-party services and APIs.