Firebase Essentials

Thank you for signing up for the course and welcome to the ShoppingList++ team!

Need help getting started?


Before you Start

Firebase Essentials Prerequisites and Getting up to Speed

The full list of prerequisites can be found here, as well as suggestion for other courses to take to get up to speed.

Course Syllabus

Below is the course syllabus. We also have a video index, which is helpful for finding videos in the course on specific Firebase topics. You can access that here

Lesson 1 - Setting up Firebase

In this lesson you'll set up Firebase and read and write your first data.

Topics include:

  • Course Description and Prerequisites
  • Getting Setup With Firebase
  • Writing your first Firebase Data
  • How Data Works in Firebase
  • Reading your first Firebase Data
  • Plain Old Java Objects in Firebase
  • When to Choose Firebase as part of your stack

Lesson 2 - Essentials of reading and writing data

In this lesson you'll learn all the ins and outs of reading and writing data, including displaying lists of data that are synced with your Firebase database.

Topics include:

  • Writing
  • Reading
  • Debugging
  • Lists in Firebase and FirebaseUI
  • Best Practices for Reading and Writing Data

Lesson 3 - Create user accounts using both email/password and Google+

In this lesson you'll how to create user accounts using both the an email and password login flow, as well as Google login. You’ll then use this user data to display different information to the user depending on who they are signed in as.

Topics include:

  • Creating and Logging in Users via Email and Password
  • Logging in Users with Google
  • Logging out Users
  • How to Store App Specific User Data
  • How to Use User Data
  • Basic Login Security and Resetting User Passwords

Lesson 4 - Structure your database schema for lightning fast queries and sorting

In this lesson you'll learn how to structure your database schema for lightning fast queries and sorting. You’ll use your new data structure to implement sharing functionality. You’ll also learn about Firebase’s filtering and sorting capabilities by adding sorting and basic autocomplete to ShoppingList++.

Topics include:

  • Sorting in Firebase with orderBy
  • How and why to de-normalize data
  • Dealing with Many to Many relationships in Firebase
  • Using IndexOn and OrderByValue for faster searches
  • Range, Start At, End At and Limit queries
  • Basic Searching in Firebase

Lesson 5 - Offline access and securing data

In this lesson you'll learn about how Firebase deals with offline access and how to secure your data using Firebase’s built in security and permission rules.

Topics include:

  • Firebase Offline Access
  • Server-side Data Validation in Security Rules
  • Introduction to the Bolt Compiler
  • Server-side Read/Write Permissions in Security Rules
  • Checking Authentication in Security Rules

The Course Github Repo

The Github Repo

The course repository for the ShoppingList++ Android app.

Getting set up with the Github Repo

This page describes how to get set-up with the Github repository and how it is used in the course.

Important: If you are planning on using an emulator to test the app, please follow the instructions found here.

This page describes how to navigate the ShoppingList++ Github repository for those who might be new to Github

Reporting Code Issues with the Github Repo

This page describes how to report any issues you might find with the ShoppingList++ Github repository

Other Course Resources

The Wireframes

The wireframes show what screens will be in the final app and how they connect.

The Video Index

This video index gives a summary of each of the videos and the skills covered. This will be helpful if you’re ever trying to remember what video contained the information you need when working on more complex coding tasks or on your own projects.

Firebase Terminology

A list of terminology that we will use in the Firebase course is provided above.

Official Firebase Documentation - Android

The official Firebase Documentation for Android. We'll cover everything that's in here and then some.

Official Firebase Documentation - Java Docs

The Java Docs for the Java SDK.

Official Firebase Documentation - Security and Rules

The official Firebase Documentation for Firebase's Security and Rules language. This is the material we will cover in lesson 5.

Official Firebase Open Datasets

Firebase provides a few open datasets so that you can see how large amounts of data are structured with Firebase, as well as use these datasets in your apps.

Official Firebase Chat Code Lab

This is a code lab that takes about 1 hour and allows you to build an Android chat app.

Firebase UI Library

FirebaseUI is an open-source library for Android that allows you to quickly connect common UI elements to the Firebase database for data storage, allowing views to be updated in realtime as they change, providing simple interfaces for common tasks like displaying lists or collections of items, and displaying prompts for user authentication.

Downloadable Materials

You can download Supplemental Materials, Lesson Videos and Transcripts from Downloadables (bottom right corner of the Classroom) or from the Dashboard (first option on the navigation bar on the left hand side).


Instructors: JP Souchak, Lyla Fujiwara
Course Developers: Lyla Fujiwara
Production Lead: Larry Madrigal
Code Developer: Ivan Verchenko

Video Editors: Geoff Norman, Farrin Abbott, Megan Haberman Smith, Taylor Gilkeson
Developer Programs Engineer: Frank van Puffelen
Project Manager: Nathaly Machatius
Program Manager: Gundega Dekena
QA and Student Support: Brynn Claypoole, Sam Chordas
Interviewees: Frank van Puffelen, Abe Haskins, Jenny Tong
Course Advisors: Shanea King Roberson, Katherine Kuan, Frank van Puffelen, Megan Krilanovich, Sara Robinson, Jocelyn Becker, David East, Sarah Clark, Aleks Haecky
Actors: Kagure Kabue, Walter Latimer, Jeremy Silver