Looks like client-side indexing is still not publicly available for the web-sdk unless I'm mistaken. This sounds like a very cool feature though! Can't wait to implement if possible.
Additionally there are the issues of security with caching RBAC-protected reads, and from what I understand, it seems like there is not a good way to "clear" the cached data effectively (for example, when a user logs out). Maybe giving developers the ability to specify which queries/collections are persistent (enableHybridPersistence?), and which are security-sensitive would be a good workaround? Very interested in improving my app's performance with firebase caching/bundling/client-side indexing, I hope the combo becomes viable soon!
It is! The documentation guide doesn't show a Flutter code sample, but the API is here: pub.dev/documentation/cloud_firestore/latest/cloud_firestore/FirebaseFirestore/loadBundle.html
To use a firestore bundle, does the client need to have persistence enabled for the offline cache. If persistence is enabled, does it mean that the offline cache and the bundle are retained when the app or browser is closed and don't have to be re-downloaded when the app or browser window starts up again.
There's no dedicated video (yet), but the [documentation][1] and [solutions guide][] for bundles are quite extensive. [1]: firebase.google.com/docs/firestore/bundles [2]: firebase.google.com/docs/firestore/solutions/serve-bundles