Adding Authentication with Firebase and AWS Amplify
Firestore, NoSQL, SQL Databases
The next step for my “Jurassic Gains” application would be to allow users to save their preferences to the cloud. Right now everything is saved through local Shared Preferences. This has given me more than a few headaches over the last couple of days. Firebase has a thing called Firestore which gives you the ability to create NoSQL databases. I have never worked with NoSQL databases. Firebase also has a thing called “Firebase Realtime Database”. I immediately jumped right in and went with Firebase’s Firestore. This process was not nearly as easy as I thought it would be. My application requires data to contain a lot of nested arrays and maps. I thought this would be no problem as it is a document. Therefore, I thought it would be just like grabbing data from json. I was wrong, wrong, so wrong. You can’t just grab the data from Firestore as JSON. When I get the data, Firestore gives it to me as a map of all the fields and their values. Since I have a lot of nested lists and objects, it takes a lot of work to dive deep into these values. It has gotten me thinking that maybe using Firestore isn’t the right approach to this problem. Maybe I should have figured out a way to use a SQL database. Earlier tonight, I figured out a way to get to the nested values. I believe I am on the right path. So as of now, I plan on sticking with Firestore.
The Future of Jurassic Gains
Jurassic Gains is becoming the project that I want to turn into a marketable product. Sure, it is already an Android Application, but, I want to expand the horizon and give users a product they want. I want to make a website version of the application so that users can go on their computers and track their exercise progress. I also want to make it dynamic so that users can create their own exercise routines. The application should have groups. Groups with a “Master User” (like a sports coach or a personal trainer) that can create exercise routines and allow players/trainees to input their progress each week. The Master User can then track his players and see their progress. This requires a lot of work. I realize this is probably going to take close to a year to develop. But, I believe it will happen.