Track My Location
This is a simple android app where you can brodcast your location and everyone who has your dynamically generated unique key can track you in near real-time.
I created this project just for learning puposes particularly about firebase (firestore db), google maps api and google location api.
Screenshots
References
- Set Up Google Play Services
- Getting Started - Google Maps
- Get API Key
- Add Marker in Maps
- Firebase Documentation (Guides) (Link)
- Get Started with Firebase Firestore
- Firestore Data Model
- Firestore - Get Data
- Firestore - Structure Data
How it works?
- The first device get continous location update from gps, network etc. then
- Write and update the location data to a specific firebase firestore document
- Last, the second device read that firebase firestore document and show the marker in that location
Hot to integrate Google Maps & Location API
To use google maps in an android app you can use SupportMapFragment
or MapView
- Using google maps fragment (inside a layout or as a root tag)
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
- Then you have to add permissions and google maps api key in the AndroidManifest.xml file
Add permisions for coase and fine location also add meta-data tag for API key
Integrate Google Play Services for Firebase into android project
- Add this gradle plugin
'com.google.gms:google-services:3.1.1'
into dependencies block of the top-level gradle build file
- Apply the google play services plugin in the app level gradle build file (app project)
- Then you can add google play services library for maps, location, places etc. (firebase needs google play services to operate)
- You need to download and add
google-services.json
file to yourproject_name/app/
directory from firebase console when you add an android app to your firebase project - Here are the complete figure
enter the app package name & SHA-1 key (optional for firebase auth)
Getting API Key for Google Maps & Location
- Go to the google cloud console page and click credentials submenu (or Get API Key )
- Then create a new credential
- New API key has been created, you can copy the key and paste in the manifest file. To restrict access of the key click the restrict button
- You can restrict api key usage by selecting the platform or IP address by which the api call would be requested (Application restrictions)
- Select one of the application restrictions (in this case Android)
- Insert your android app package name
- Insert SHA-1 fingerprint of your app
- Click Save button
- To get SHA-1 key you can use your android studo by opening your particular project -> select signingReport gradle task -> copy & paste the SHA-1 key into the android app restriction form