I have set up Firebase with collections of events, speakers, and venues. Event documents contain a subset of speakers and venue data.
I have set up Algolia search (via API Calls) on the events collection. Only a subset of event data is indexed.
1. I'm curious on the best approach to handling the collections and data types within FlutterFlow.
I have set up collections within the Firebase section for events, speakers and venues, which seems necessary for feeding into display and edit pages for these documents.
I've Also set up data types for SearchEvents, SearchEventSpeaker and SearchEventVenue. This seems necessary to cast Algolia search hits to Data Types, since the properties don't match the events, speakers, venue collections 1:1 (ie, not all properties are indexed, Algolia creates an objectID property to correspond to the firebase ID. Am I over complicating things?
2. I'm having difficulty going from the SearchPage (that uses SearchEvent data types) to the EventDetailsPage (that uses the events collection).
I've set up the details page to take an event document reference as input parameter, and does a backend query on the events collection, and then should populate the page based on the data coming from firebase.
On the search results, clicking the event item container triggers an event to navigate to the event details page... but how to get and pass that event document reference, when all I have is the objectID?
I've created a custom function that takes the objectID from Algolia and generates an event document reference:
DocumentReference ref =
FirebaseFirestore.instance.collection('events').doc(eventID);
print(ref);
// DocumentReference<Map<String, dynamic>>(events/IEp6TfFUzkb76mUC99Xm)
return ref;
... but it doesn't work. It navigates to the EventDetailsPage but just stalls on the loading spinner. And I'm not seeing any network activity in the browser developer tools.
Any thoughts?