Reduce time to market with these tools

Firebase tools that are a must and speed up development

Eni Sinanaj
Dec 8, 2019 · 4 min read
Photo by Paul Bulai on Unsplash

What is Firebase?

irebase is a platform that offers services to easily build a mobile-first solution. Firebase covers different stages of an application lifecycle. From development tools and solutions like database, storage and functions services to analytics, crashlytics and marketing tools for growth tracking.

There’s some difference between using the client SDK of Firebase and the admin SDK. The client SDK can be easily integrated on the client side (JavaScript) of a Web application, on an iOS or Android project and so on. While using it from a server side technology (like Java, NodeJS and so on), to use Firebase you should include the Firebase Admin SDK.

Setup and further usage is more or less the same as on the client side.
Be aware that a lot of services are not free so take a minute or two to check out the pricing page before deciding whether to use Firebase or not.

Devs

For the devs there are available services like Hosting, Functions and ML Kit. Hosting obviously is known to everyone as what it can be. Functions (on the cloud) on the other hand might not be known to all. Basically functions are like normal functions you would create in a common programming language which are deployed as functions on the cloud. Amazon as well offers a similar solution called AWS Lambda. Some examples that would make the purpose of functions clearer can be found here https://github.com/firebase/functions-samples. ML Kit also is the youngster in the current technology era and as you might have already guessed it’s about Machine Learning.

Analytics

There are also many other features in Firebase to cover the whole life cycle of software production. For example there are tools to measure application quality and performance. Analytics is also very well integrated. Firebase Analytics is being moved to Google Analytics but the integration will remain seamless.

Crashlytics

Another very useful tool dedicated to mobile applications. It is a life saver when having issues reported from the users in live applications. Most of the time it’s impossible to reproduce users’ issues. It’s therefore very useful to have the aggregation of two things; Analytics events and StackTrace of the crashes. Crashlytics does this. Once integrated into the app and deployed, for every eventual crash you’ll have a detailed log about how it happened. Details include platform, app versione, OS versione, Analytics events triggered by the app (e.g. view transitions) and stack trace of the exception that generated the crash.

Growth

The last part you can find on the Firebase console is about collecting and using data in order to enhance your application for better growth. Some of the tools are Predictions, A/B Testing, Cloud Messaging, In-App Messaging, AdMob and more. This part is to be covered from someone else that knows better than me about marketing and growth :).

Authentication

The configuration on the Firebase Console is pretty easy and it let’s you easily integrate email authentication for your users as well as Gmail login handling automatically all the oAuth process.

Email/Password authentication and Google authentication are enabled by default but Google authentication should be configured which means that a Web client ID and a Secret key are needed. These two keys can be generated on the google developer console (https://console.developers.google.com/) but what to do is somewhat guided when adding the authentication method in Firebase.

The documentation and the available samples cover it all so here’s the link to get started. https://firebase.google.com/docs/auth/web/start

Database

There are two available database solutions. The Realtime Database and Cloud Firestore. Each of these offers a different set of advantages while the main function is to store data. Both solutions are non-relational databases.
Using the Realtime Database on a JavaScript client is easy.

Get the database instance with the following code:

  // Set the configuration for your app
// TODO: Replace with your project's config object
var config = {
apiKey: "apiKey",
authDomain: "projectId.firebaseapp.com",
databaseURL: "https://databaseName.firebaseio.com",
storageBucket: "bucket.appspot.com"
};
firebase.initializeApp(config);

// Get a reference to the database service
var database = firebase.database();

For each node of your database structure you’ll have to create a ref (reference) and perform CRUD operations on that. So eventually for setting some personal information on a user object the following code should do the trick:

let userRef = database.ref('users/' + userId);
userRef.set({
'firstName': value.firstName,
'lastName': value.lastName,
'gender': value.gender.toLowerCase(),
'dateOfBirth': moment(value.dateOfBirth).toDate().getTime()
});

Note: Using the Firebase JavaScript SDK on a NodeJS project has some limitations compared to using it on a Web project. Some services are not available for NodeJS.

The Startup

Medium's largest active publication, followed by +563K people. Follow to join our community.

Eni Sinanaj

Written by

#tech #startup #entrepreneur #business #money #excess #earth #motivational #speaker #hype #manager #startup #consulting

The Startup

Medium's largest active publication, followed by +563K people. Follow to join our community.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade