Transcript from the "Introduction" Lesson
>> Hello, everyone, this is Firebase fundamentals. I have one goal today, and that is to teach you all how to build real time authenticated, secure and scalable websites on Firebase. My name is David East. I'm a developer relations engineer and I am very excited to be here today because, well, I love teaching people Firebase and also I love FrontedMasters.
[00:00:24] I mean, it's not related to the course, but I have been here, I've been watching fFrontedMasters since 2013, so this is a nice check on the bucket list item. So we're gonna have a lot of fun here today. So ,before I jump into everything that we're gonna be doing, I wanna kinda go through the logistics of this course.
[00:00:43] So things that you need to have installed and where we're gonna be getting the course material from. I'm gonna have this site deployed, this is fronted-masters.web.app, you can go to that. Also everything in this course or in this site, I like call this the companion guide, but everything in this companion guide, all that we're gonna be doing is on this GitHub repo right here.
[00:01:06] So if you clone that down and you wanna run this site locally, you can do that just cd into the guide and npm i and then npm run dev. But also we want to make sure that we have Java 18 is the one I recommend installing because that's what worked on my machine, but anywhere between Java 12 to 18 should be good and Node 16 also recommended but I believe anything Node 12 through 16 should be good.
[00:01:32] The GitHub repo the way it works is that we have all these folders which are numbered off of the sections that we're gonna be going through and each one has a start and a final. Final is obviously everything that's finished and started just kind of gonna have all the boilerplate code.
[00:01:50] So when we get to the exercises and demo parts of this, we're gonna go to that cd internet, npm install it and then run all the code and see it all work. So that's how it's gonna go. So I'm going to start out with a little bit of an intro about Firebase.
[00:02:09] And so with this, you can kind of think about this companion guide is like a bit of an e-book it's got a ton of information I wrote through it with a little table of contents, but if you hit the period key, it turns into slides. I was really proud about that one.
>> Why do we need to install Java?
[00:02:53] You won't be writing any Java, but you need to do that to run Firebase services locally, which is a best practice in the Firebase world. So what is Firebase? Firebase is a platform for building mobile and web applications, and it has over 20 products or services or features, however you wanna call them, and that can feel kind of overwhelming at first.
[00:03:23] We could go into the Firebase site, which I think this one right here, and you can see that there's even three pillars, there's Build, Release and Monitor, and Engage. Now we're going to be focusing on this Build pillar, but even within Build, we have one, two, three, four, five, six, seven, eight, nine, ten, 11 products or services on here.
[00:03:47] And then even in these ones Release and Monitor, Engaged is even more in there. I think the total number depending on how you count, it is like anywhere to 24 and 26 things. But the good news is you don't have to worry about learning 24 or 26 different things, you just need to kind of think about Firebase in two different ways.
[00:04:04] I'd like to say that Firebase is serverless infrastructure for developers and growth tools for business developers and marketers. So both parts are important, one will help you build all your stuff out and the other will help you kind of help with a lot of KPIs, statistics, ARPU, a lot of other business words that I'm not super great at because I like to hide over here in the Build section, and let the Release and Monitor, Engaged people tell me things about how that world works.
[00:04:36] But so today we're just going to be working all on the serverless infrastructure side and how we're going to be building with Firebase. And I love to tell the story about how Firebase got started. So Firebase is over ten years old at this point and even before Firebase started out back I think in 2011 or so, 2012 something around that timeframe, Firebase was actually a startup called Envolve, kind of like evolve, involve and it was a chat widget that was very popular to be embedded on celebrity websites.
[00:05:13] And you would just kind of put that on there and then everyone on a fan site can all talk to each other or to the celebrity of choice. And that was something that was going really popular, but they started noticing a trend with a lot of their customers.
[00:05:51] And they realised, people are using this as a real time database, so they went and they pivoted and they rebuilt the whole platform as Firebase. Today, we're gonna be covering all from that perspective, we're going to be talking about Firebase Hosting, which is how you can deploy your site from the CLI to a Global CDN.
[00:06:11] We're going to be covering FireStore, which is a cloud hosted real time database, Firebase authentication so you can sign users up without having to run a server and manage accounts and things like that. We're gonna also talk about security, how we're gonna make sure all this is secure.
[00:06:28] Since it's a serverless system, the security is a bit different than a traditional system. And then we're gonna end up the day why talking about Cloud Functions about all the times where you do need to run server code, and it's really cool to do it in response to events, and that we're going to learn all those events before we get to that section.
[00:06:47] So for me, my name is David East. I've actually been working on Firebase since 2014 back when it was a little startup. This is my picture from my Week 1. Yeah, that was me over eight years ago with the hair and my wife begged me not to use this picture, but I think it's kind of shows maybe the wisdom, maybe I've grown since those days.
[00:07:10] I had no idea what I was doing then. And so with Firebase, it can be kind of a perspective shift when you first start out, because if you've been used to building traditional applications or as Firebase applications, things are going to be a little different. With a traditional architecture, you have a client, it could be a phone, it could be a laptop, it could be so many different things, and if it wants to reach out to your back end, you are going to do, let's say, a get request through to some API that lives on your server.
[00:07:44] And then that's going to go out to some storage layer. And then maybe that also reaches out to some authentication system, but your server acts as a sort of centralized API gateway is a common term people have for that. And so you reach out to one server or what you kind of see as one server, and then you reach out to all of the solutions hosted on that server.
[00:08:06] With Firebase, it's a lot different because you just reach out to the service. That's it, there's no common API gateway. You could make one with Cloud Functions, but you'll lose a lot by doing it that way. You say hey I want to talk to your database, you go talk to the database.
[00:08:23] You say, Hey I want to go upload some binary files, you go talk to Cloud Storage. You want to say, Hey I want to talk to my Cloud Function, you go talk to your Cloud Function, you This go straight to the service. And so that is a bit of a perspective shift because you aren't just wrangling everything up on a server and sending it down, you are thinking about everything as talking to one individual service at a time.