Sharing files among several unauthenticated users

Hi, after further investigation, I am posting here my conclusions.

I will be comparing pros and cons of 3 different products from Google:

  • Firebase Realtime Database - Available in AI2 as the Experimental-FirebaseDB component
  • Cloud Firestore - Google’s replacement of Firebase Realtime Database - Not yet available in AI2
  • Cloud Memorystore - Available in AI2 as the Storage-CloudDB component

Firebase Realtime Database

The problem with this option is that it will only allow 100 simultaneous users using my app to connect to the DB. Look for “Simultaneous connections” here: Firebase Pricing Plans

Besides, as I mentioned before, Google is recommending to use to the newer product Cloud Firestore (see next).

Cloud Firestore

This option is more difficult to program, as AI2 does not yet provide a component. However, I imagine that the Cloud Firestore API can be invoked without much trouble using a pattern like the one explained here: Firebase Authentication in App Inventor Using Javascript

I also found this thread with regards this topic, although unfortunately I could not draw any conclusions from it: Cloud Firestore access

Cloud Memorystore

It is available through the AI2 Storage-CloudDB component and it does not seem to have any limit of concurrent connections.

The only cons I noticed, is that it does not provide real time sync, according to the info here (look for “Realtime sync to clients”): Google Cloud Databases

I am not sure what it means. In my particular case, “near real time” would suffice. But I was not able to find more info regarding the degree of delay.

Common cons

The cons that are common in the 3 products, if I understood correctly how they work, is that they will consume a lot of 4G data traffic to the users of my app. The DataChanged event is continually sending ALL changes that are taking place in the DB to ALL users!!

I wonder why a method does not exist to only subscribe to the tag (or tags) that a user is interested in, in order for the DataChanged event only being fired for those tags.

Could anyone who is experienced in these products shed light on the subject?

Thanks