I was exploring the possibility of replacing Algolia with the new vector search functionality being made available in Firestore. Seems to be in early beta, and I struggled getting even a custom cloud function to work with it, so I ended up just abandoning the project for now.
However, I started to get some weird reports from users in production that they were experiencing hard crashes on both Android and iOS when they hit a view connected to the collection I had enabled this extension on. I neglected to connect the dots and spent DAYS trying to figure out what was causing the crashes.
What happened
Context – I was evaluating Firestore’s new Vector Search with Firestore extension (v0.0.7) as a drop-in replacement for Algolia in my FlutterFlow app.
Setup – Enabled the extension on one of my existing collections and pointed a test Cloud Function at it for search and enabled backfill. Wasn't able to get search to actually work with Cloud Functions due to firebase-admin version incompatibility, so I stopped that project to let this tech stack mature. However:
Issue – After the extension back-filled documents with its proprietary embedding field, the FlutterFlow runtime crashed instantly on any screen that streamed that collection (both Android & iOS). This affected all my existing builds too, and I never even added the new field to my collection in FlutterFlow. Turning off the extension did not help because the vector field remained in every doc.
Fix – Manually (or via script) removed the embedding field from all documents → crashes disappeared. However, app had to be deleted before it starts working again - something was being retained after removed remotely that causes the crash.
Probable cause
FlutterFlow’s auto-generated serializers don’t recognize the new Firestore “vector” field type, and the low-level platform channel throws before it reaches Dart.
Attached screenshot of the Crashlytics event I believe is associated with this issue.