Firebase In Depth

Full-stack Development with Firebase, Firestore, Firebase Storage & Hosting, Firebase Cloud Functions & AngularFire
Firebase In Depth
File Size :
3.53 GB
Total length :
10h 1m



Angular University


Last update




Firebase In Depth

What you’ll learn

Code in Github repository with downloadable ZIP files per section
In-depth coverage of the Firestore NoSQL Database
Complete Transactional Serverless CRUD Example
Email and Social Authentication With Firebase Authentication
Full RBAC Role-Based Authorization with Firestore Security Rules
Secure Serverless File Upload with Firebase Storage
High-performance, free SSL hosting with Firebase Hosting
Database Triggers with Firebase Cloud Functions
Secure REST Endpoints with Firebase Cloud Functions
Serverless Architecture Design
Serverless Angular development with AngularFire
Full drop-in Authentication solution: Firebase UI
Full Production Deployment

Firebase In Depth


Just a little bit of Angular and Typescript


This Course in a NutshellIf you are looking for the best backend to go along with your Angular frontend, then the Firebase ecosystem (with the Firestore NoSQL database) is the right choice for you.Today, it’s simpler than ever to develop Firebase applications thanks to the latest Firebase development tools, including the awesome local emulator (covered in detail in the course).Firebase allows us to build applications in a mostly serverless way, in the sense that when using it we only have to write a little bit of server-side code, if any at all in a lot of cases.With Firebase, we can not only query our database but also do data modification operations straight from the browser, in a secure way. So how is this possible?The way that this works is that the Firestore database enables us to declaratively accept or deny incoming requests using Firestore Security Rules.A key ingredient for this to work is Firebase Authentication, which we will cover in detail in this course. Firebase is, of course, frontend agnostic, meaning that it will work with any frontend technology. So why does it work especially well with Angular?This is due to the powerful AngularFire library, which allows us to easily query and modify Firestore data in a reactive way using the AngularFire Observable-based API.Besides Firestore, the Firebase ecosystem provides everything else that you need for building a fully functioning backend solution. This includes secure file upload via Firebase Storage and the hosting of your static files via Firebase Hosting.For the rare cases when you need some server-side code, you can do that too in Firebase using Firebase Cloud Functions, which are node-based stateless functions running on the Google Cloud infrastructure.Using Cloud Functions, you can implement server-only functionality like database triggers, or even REST endpoints for operations that can only be done on the server, such as user creation, or payments.The Firebase ecosystem provides a complete solution for quickly building the backend of your web application, allowing you to focus more of your development time on the frontend.Course OverviewIn this course, we are going to take a sample Angular application and we are going to connect it to a Firestore database. We will learn how to do all sorts of database queries and we will provide a complete CRUD example using AngularFire.We will set up the local development emulator from the very beginning, which will allow us to use a local database with predefined authentication users and some initial data.The emulator will also allow us to test cloud functions locally as well as security rules, which is super convenient.From there, we are going to add security to the application, starting with authentication using Firebase Authentication. We will implement both email and password and social login using the Firebase UI library.We are also going to implement role-based authorization using Firebase Authentication custom claims and the AngularFire Authentication router guard.We will implement an administration screen that allows an existing administrator to create other users, including other administrators in a secure way.For this, we will need some backend code, so we will be using Firebase Cloud Functions for that. We will also show how to use Cloud Functions to implement other commonly used backend features, such as database triggers.We will show how to do secure file upload of an image thumbnail using Firebase Storage.We will end the course by doing a full production deployment using Firebase Hosting, and testing everything out in a non-emulated production environment.Table of ContentsThis course will go over the following topics:Introduction to NoSQL data modelingDocuments vs CollectionsFirestore Unique IdentifiersQuerying a database using the Firebase SDKAngular Service Layer Design with AngularFirePaginationIndexes, Composite IndexesData Modification with AngularFireTransactionsMulti-path UpdatesFull CRUD example with AngularFireAuthentication with Firebase AuthenticationProtecting screens with the AngularFire Authentication guardSecuring Database access with Firebase Security RulesFull role-based authorization using Firebase Authentication custom claimsSecure file upload with Firebase StorageFirebase Storage RulesServer-side image processing with Firebase Cloud FunctionsFirebase Cloud Functions Database TriggersFirebase Could Functions HTTP endpointsCloud Functions Service AccountsProduction Deployment with Firebase HostingWhat Will You Learn In this Course?In this course, you will learn everything that you need to know to become a proficient Firebase developer. You will understand how to model a Firestore database, and how to interact with it using AngularFire.You will know how to implement secure, transactional data modification queries straight from the frontend using the AngularFire Observable-based API. You will know how to secure your data using Firestore Security rules, and how to implement role-based Authorization.You will learn how to design your system in order for it to need minimum backend code, that when necessary can be implemented using Firebase Cloud Functions.At the end of the course, you will feel confident designing and developing applications in a serverless way using the complete Firebase ecosystem.Have a look at the course free lessons below, and please enjoy the course!


Section 1: Introduction

Lecture 1 Firebase & AngularFire In Depth – Helicopter View


Lecture 3 Course Introduction and Development Environment Setup

Lecture 4 Set Up a Firebase Account and Populate a Firestore Database

Lecture 5 Firestore Fundamentals – What is a Firestore Document?

Lecture 6 Firestore Fundamentals – Collections, Unique Identifiers and Relationships

Lecture 7 Firestore Fundamentals – Introduction to Collection Queries using AngularFire

Lecture 8 Firestore Fundamentals – Performance Guarantees and Indexes

Lecture 9 Firestore Fundamentals – Collection Group Queries

Lecture 10 Firestore Fundamentals – Realtime Capabilities

Section 2: Angular Service Layers with AngularFire and Firestore

Lecture 11 New Section Introduction – Beginning the Implementation of the Home Component

Lecture 12 An Example of a Firestore array-contains Query

Lecture 13 Converting Firestore Query Results to a Domain Model

Lecture 14 Finishing the Implementation of the Home Component

Lecture 15 The Firebase Local Emulator – Why do we need it?

Lecture 16 Setting Up a Firebase Project with firebase init

Lecture 17 Introduction to the Firebase Local Emulator

Lecture 18 AngularFire CRUD Example – The Create Course Form

Lecture 19 AngularFire CRUD Create Service – API Design

Lecture 20 AngularFire CRUD Create – Service Implementation

Lecture 21 AngularFire CRUD Update – Service Implementation

Lecture 22 AngularFire CRUD Update – Building the Edit Course Dialog

Lecture 23 AngularFire CRUD Update – Final Implementation and Demo

Lecture 24 AngularFire CRUD Delete – Implementation and Demo

Lecture 25 Understanding Firestore Transactional Batched Writes

Lecture 26 Course Screen – Pre-Fetching Data with a Course Resolver

Lecture 27 Course Screen – Router Resolver Implementation and Demo

Lecture 28 How to Implement a Firestore Paginated Query

Lecture 29 Firestore Data Pagination Example – Implementation Conclusion and Demo

Section 3: Firebase Authentication and Firestore Security Rules

Lecture 30 Introduction to Firebase Authentication

Lecture 31 Implementing Authentication Using Firebase UI

Lecture 32 Implementing an Angular User Service – API Design

Lecture 33 User Service – Adapting the UI to the User Authentication Status

Lecture 34 Introduction to Firestore Security Rules

Lecture 35 Firestore Security Rules Fundamentals – Nested Rules

Lecture 36 Firestore Security Rules Fundamentals – Rule Order and Access Types

Lecture 37 Checking if a User Is Authenticated Using Firestore Security Rules

Lecture 38 Implementing Firestore Schema Validation With Firestore Security Rules

Lecture 39 How to Implement a User White List Using Firestore Security Rules

Lecture 40 Implementing Role Based Access Control (RBAC) with Firestore Security Rules

Lecture 41 How to Write Security Rules For Collection Group Queries

Lecture 42 RBAC UI Implementation – The Roles Observable

Lecture 43 Showing certain UI Features only to Administrator Users

Lecture 44 Protecting Access to Admin Screens With the AngularFire Authentication Guard

Section 4: Serverless File Upload With Firebase Storage

Lecture 45 Introduction to Firebase Storage

Lecture 46 File Upload with Firebase Storage – Implementation Finished and Demo

Lecture 47 Implementing a File Upload Progress Indicator for Firebase Storage

Lecture 48 How to Create a Safe Download Url in Firebase Storage

Lecture 49 Firebase Storage Security Rules

Section 5: Firebase Cloud Functions In Depth

Lecture 50 Why do We Need Firebase Cloud Functions?

Lecture 51 How Do Firebase Cloud Functions Work?

Lecture 52 Firebase Cloud Functions – Hello World

Lecture 53 Firebase Cloud Functions – Introduction to Database Triggers

Lecture 54 How To Initialize a Firestore Connection From a Firebase Cloud Function

Lecture 55 Firebase Cloud Functions Add Document Trigger Implementation

Lecture 56 How To Minimize the Cold Startup Time Of Firebase Cloud Functions

Lecture 57 Firebase Cloud Functions – Update Triggers

Lecture 58 Firebase Cloud Functions – Delete Trigger

Lecture 59 How to Create an HTTP Endpoint with Firebase Cloud Functions

Lecture 60 Calling a Firebase Cloud Function REST Endpoint

Lecture 61 Implementing a Create User REST Endpoint with Firebase Cloud Functions

Lecture 62 Setting Up an Angular Http Interceptor

Lecture 63 Securing a Firebase Cloud Function Endpoint using Express Middleware

Lecture 64 Firebase Cloud Functions Secure REST Endpoint – Final Demo

Section 6: Production Deployment With Firebase Hosting

Lecture 65 Introduction to Firebase Service Accounts

Lecture 66 Setting The Claims of the Initial Root Admin Using a Node Script

Lecture 67 Production Deployment With Firebase Hosting

Lecture 68 Final Application Test In Production

Section 7: Conclusion

Lecture 69 Bonus Lecture

Lecture 70 Conclusions and Key Takeaways

Any Developers trying to learn the Firebase ecosystem from scratch,Angular Developers looking for the best possible backend to go along with Angular

Course Information:

Udemy | English | 10h 1m | 3.53 GB
Created by: Angular University

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top