You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
samples/flutter_maps_firestore
Kevin Moore a858f4701e
Bump deps and min SDKs, move web apps to new bootstrapping logic (#2292)
8 months ago
..
ios Update Samples for 3.16 (#2085) 1 year ago
lib Fixed ThemeData in the Flutter Samples unnecessarily includes useMaterial3 = true (Issue #2214) (#2217) 9 months ago
test Add analysis_options, fix and format. (#102) 6 years ago
.gitignore update sample to use new versions (#702) 4 years ago
.metadata Fixup for failing Beta CI (#2092) 1 year ago
README.md Initial commit flutter_maps_firestore (#93) 6 years ago
analysis_options.yaml Create `analysis_defaults` package (#1654) 2 years ago
codelab_rebuild.yaml Update for 3.13 stable (#1992) 1 year ago
pubspec.yaml Bump deps and min SDKs, move web apps to new bootstrapping logic (#2292) 8 months ago

README.md

Flutter Maps Firestore

A Flutter sample app that shows the end product of the Cloud Next '19 talk Build Mobile Apps With Flutter and Google Maps. The live coding starts at about 17:40.

Goals for this sample

  • Showcase how to build an app that uses Google Maps with Flutter:
    • Loading a list of Ice Cream shops from Cloud Firestore
    • Listing the shops in a custom carousel
    • Showing the shop locations on a map using Markers
    • Controlling the Google Map from the carousel

The important bits

Cloud Firestore

To set up Cloud Firestore connectivity, follow the steps outlined in the Cloud Firestore package setup section.

Next, you need to populate your Cloud Firestore with a collection named ice_cream_stores, structured a bit like this:

ice_cream_stores:
  ChIJ70taCKKAhYAR5IMmYwQT4Ts:
    placeId: ChIJ70taCKKAhYAR5IMmYwQT4Ts
    address: 432 Octavia St #1a, San Francisco, CA 94102, USA
    location: 37.7763629, -122.4241918
    name: Smitten Ice Cream

The collection name is referenced from _HomePageState's initState method. The placeId, address, location and name are used at various points in the widget tree to render appropriate data.

Google Maps

You need to add a Google Maps SDK for iOS API key to ios/Runner/AppDelegate.m. This enables the Google Map to render. You will also need to add a Google Maps Web Services API key to lib/api_key.dart.

To reiterate the warning that we gave during the talk, do not put Web Service API keys in your production binary. You need to build a proxy service to serve pre-authenticated content to your mobile applications so you can change API keys as required. We only did this to make it easy to demonstrate on stage.

Questions/issues

If you have a general question about building with Google Maps in Flutter, the best places to go are:

If you run into an issue with the sample itself, please file an issue in the main Flutter repo.