A Flutter library for storing and querying Firestore documents based on geographic location with realtime updates.
GeoFlutterFire is a Flutter library that allows developers to store and query Firebase Firestore documents based on geographic location. It solves the problem of performing efficient, realtime geospatial queries in Firestore by using geohashes and providing a simple API for location-based data retrieval. The library integrates seamlessly with existing Firestore setups, enabling apps to handle location-aware features like mapping, proximity searches, and geofencing.
Flutter developers building mobile or web applications that require realtime location-based features, such as mapping services, ride-sharing apps, store locators, or event finders using Firebase Firestore as their backend.
Developers choose GeoFlutterFire because it provides a straightforward, realtime solution for geospatial queries in Firestore without requiring changes to existing data structures or security rules. Its lightweight design and scalability make it ideal for handling large datasets while maintaining app responsiveness.
:fire:GeoFlutterFire:fire: is an open-source library that allows you to store and query firestore documents based on their geographic location.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides live streaming of documents within a geographic radius, enabling dynamic maps and location-aware features, as demonstrated in the example GIF with realtime updates.
Stores geohash data in its own format without altering existing Firestore structures or security rules, ensuring backward compatibility with current setups.
Supports queries on massive collections by scoping to subsets, as detailed in the 'Scale to Massive Collections' tip for handling large datasets efficiently.
Uses geohashes and Firestore GeoPoints for optimized location-based querying, reducing latency and improving performance at scale.
Does not support Firestore's limit() and orderBy() methods, and range queries on multiple fields are unsupported, restricting advanced data manipulation as admitted in the limitations section.
Strict mode requires client-side filtering, which can lead to unnecessary document reads and increased bandwidth usage for large radii, impacting performance and cost.
Tightly coupled with Firebase Firestore, making it unsuitable for projects using other databases and adding vendor lock-in complexity.