- 00:00:00 you
- 00:00:03 welcome to this video my name is Max and
- 00:00:06 as you might know I got a serious on
- 00:00:09 this channel about view beautify and
- 00:00:10 firebase now when I started this serious
- 00:00:13 what you should definitely check out a
- 00:00:15 pair skins reached out to me now Abe is
- 00:00:18 a developer working on the firebase team
- 00:00:21 at Google and he offered that she could
- 00:00:24 walk us through some of the more
- 00:00:26 advanced features of firebase such as
- 00:00:28 how to structure your data or how to
- 00:00:31 write database rules and maybe give us
- 00:00:34 an overview over firebase now since I
- 00:00:37 was going to San Francisco anyways check
- 00:00:39 out the trip video on this channel too I
- 00:00:41 thought why not take this opportunity
- 00:00:44 and here's an important thing this is
- 00:00:46 not a paid promotion or anything I don't
- 00:00:48 get any money for that and that's not
- 00:00:50 why I went there I thought it would be
- 00:00:53 awesome to talk with someone who really
- 00:00:55 works on this product which I use
- 00:00:56 anyways so Abe Haskins definitely follow
- 00:01:00 him on Twitter if you like this firebase
- 00:01:03 serious this is his twitter ID here
- 00:01:05 advise us to Google so why don't we take
- 00:01:08 a closer look at firebase together with
- 00:01:11 him so hi egg MX great down here in San
- 00:01:15 Francisco at the Google office to talk
- 00:01:17 about firebase I'm super excited that
- 00:01:18 you could come out here to chat yes
- 00:01:21 thanks so much for having us here this
- 00:01:22 is an awesome opportunity and I think
- 00:01:24 what's important to people what would be
- 00:01:26 nice to know is what actually is
- 00:01:28 firebase and what are the cool features
- 00:01:31 how can be used what can we build with
- 00:01:32 our base again so far base is a platform
- 00:01:34 of hosted cloud services that are all
- 00:01:36 exposed to simple sdk so if you're
- 00:01:39 building on web these are mostly
- 00:01:41 features related to your database
- 00:01:43 storage authentication running
- 00:01:46 server-side colored things like that so
- 00:01:48 it's this whole suite of tools that you
- 00:01:49 can pull together to really build your
- 00:01:51 app without running your own servers or
- 00:01:53 dealing with any of the complexities
- 00:01:55 that come what security and optimization
- 00:01:58 and things like that and what's really
- 00:02:00 cool actually is that we got our cloud
- 00:02:02 solutions to like obviously eight oh yes
- 00:02:04 but all you do climate but harvest is
- 00:02:07 basically simple right but it make a
- 00:02:09 little things easier yes so we kind of
- 00:02:11 as Google cloud is infrastructure server
- 00:02:14 so if you need virtual networks and you
- 00:02:17 need nvidia gpus and crazy complex
- 00:02:20 computational power go look at Google
- 00:02:22 cloud but if you're building a mobile
- 00:02:24 app that's dealing with a lot of those
- 00:02:25 kind of things most people are dealing
- 00:02:27 with like signing users and yep or you
- 00:02:29 know storing that synchronizing this I
- 00:02:31 mean push notifications all these things
- 00:02:33 everyone does so we don't need to make
- 00:02:35 you breathe but the wheel on top of a
- 00:02:37 virtual machine or your own server we
- 00:02:39 can just give you these services in a
- 00:02:41 very simple easy-to-use way and if you
- 00:02:43 ever need it Google Cloud is better for
- 00:02:45 you to step on to from firebase to build
- 00:02:47 up a really complex and get structure
- 00:02:49 that's Rakuten can actually look at it I
- 00:02:51 prepared a little project but that
- 00:02:53 basically I'll every new project looks
- 00:02:55 like an entire based consult and the one
- 00:02:58 can add it to different platforms like
- 00:02:59 iOS Android and weapon mentioned yet
- 00:03:02 that's cool figure you can build one
- 00:03:03 bagging for all these apps right
- 00:03:05 absolutely and the core features he
- 00:03:09 mentions our authentication database and
- 00:03:11 storage probably or web all the hosting
- 00:03:13 and cloud functions that Rosaline you
- 00:03:16 like yep yep cell function is our newest
- 00:03:19 offering and it's one of the most
- 00:03:20 important things we've ever launched
- 00:03:22 basically we have all these different
- 00:03:24 services that all were really really
- 00:03:25 good in there are guides authentication
- 00:03:27 sign in user that's great but you
- 00:03:30 couldn't do much more with that you
- 00:03:32 couldn't send an email that easily
- 00:03:34 functions ties it all together if you
- 00:03:37 want to send engagement email if you
- 00:03:39 want to go and send it push notification
- 00:03:41 text message anything like that
- 00:03:43 cars honking – lets you do that without
- 00:03:44 running your server that's actually
- 00:03:46 interesting thing because I started
- 00:03:48 using firebase or experimenting with it
- 00:03:50 like two years ago I was in the thing
- 00:03:52 and the one missing thing always lost
- 00:03:54 the ability to run them code when
- 00:03:56 something cancels right well for the
- 00:03:58 real-time database you could do a lot of
- 00:04:00 things with rules we'll also going to
- 00:04:02 talk about but cloud functions really is
- 00:04:04 an isolate on to really have all the
- 00:04:07 remote a really powerful and it's funny
- 00:04:09 usage is because I joined firebase four
- 00:04:12 years ago get mosque and we've been
- 00:04:14 talking about making functions in four
- 00:04:16 years so it is amazing to finally get it
- 00:04:18 out in just a PC the real
- 00:04:20 you know what we are what we knew
- 00:04:22 everyone you far away that'd be and to
- 00:04:24 get out after the contest yeah I believe
- 00:04:26 that um so maybe what fruity core or
- 00:04:30 feature ship quickly um forget
- 00:04:32 authentication I actually already have
- 00:04:33 one signed in method picture but like on
- 00:04:36 them which basically you do provide a
- 00:04:37 couple different ones I have email and
- 00:04:39 password already enabled um tragically
- 00:04:42 stores the user data you know one hazard
- 00:04:45 on your on Google servers but so we
- 00:04:47 don't have to manage that we don't have
- 00:04:48 to cash anything to or anything it's all
- 00:04:50 encrypted and you have to handle that
- 00:04:52 you know all you have to do is call a
- 00:04:54 function on your clients or new jobs
- 00:04:55 together examine here's an email use the
- 00:04:57 password will let you know if it works
- 00:04:59 if it fails will let you know that you
- 00:05:01 need your access know dealing with any
- 00:05:02 of these security of it that's that's
- 00:05:04 really because always getting security
- 00:05:06 rights is super important super easy to
- 00:05:08 memorize fairly and and it's nice
- 00:05:12 because you mentioned annexed we can
- 00:05:13 have a look at it in code and have a
- 00:05:14 little application in which you would
- 00:05:16 have CD signup code where basically I
- 00:05:18 reach out to that's an angular app to
- 00:05:21 reach out to service where we then
- 00:05:23 called the use the SDK to simply use
- 00:05:25 this create user with email and password
- 00:05:27 methods and that's alright we we just
- 00:05:29 handled a response or potential error
- 00:05:31 here and pretty cool because nothing
- 00:05:35 else to mentor us yeah and this is one
- 00:05:37 of those points right now this was old
- 00:05:38 part of its functionality we've had user
- 00:05:40 email password sign in for years but now
- 00:05:43 if you wanted to go and you know send
- 00:05:45 someone a message as soon as they sign
- 00:05:46 up that's a cloud prompt yes you
- 00:05:48 can go and say alright anytime when your
- 00:05:50 user gets created we run this bit of
- 00:05:51 code do this thing you'll send me a
- 00:05:53 message saying I'll someone signed up
- 00:05:55 yet all of that was running the server
- 00:05:57 so cool so that's really nice reception
- 00:06:00 but if you need it you actually have
- 00:06:01 morals that you can use all these social
- 00:06:03 sign-in provides like Google Facebook
- 00:06:04 Twitter get Evan when it please
- 00:06:07 anonymous and phone yes absolutely so
- 00:06:09 anonymous is a classic one that's been
- 00:06:11 around for a long time and the basic
- 00:06:12 idea is that if you have someone come to
- 00:06:15 your application even if they don't sign
- 00:06:17 it even if they're not going to go give
- 00:06:19 you their Google
- 00:06:19 anything like that you may want to know
- 00:06:21 who they are where they come back so it
- 00:06:24 just likes them gives them a unique ID
- 00:06:26 and since all right anytime this person
- 00:06:28 revisit they all have that same ID so
- 00:06:31 you could give them temporary resources
- 00:06:33 you could just keep stage for them
- 00:06:35 between page refreshes and when they
- 00:06:37 leave come back next week anything like
- 00:06:38 that so it's completely headless they
- 00:06:40 don't get prompted anything to Desai's
- 00:06:42 them in that you are anonymous user 422
- 00:06:45 and you always know that you can rely on
- 00:06:47 that identity and we use the SDK for DES
- 00:06:49 you to send basically request you to
- 00:06:51 firebase Jack and then stick it's just
- 00:06:54 one method just like created user visits
- 00:06:55 when it's signed an anonymous gray and
- 00:06:57 that's all it is
- 00:06:58 oops yes it's very useful it's a lot
- 00:07:01 more useful than you think at first
- 00:07:02 because you're going like why would that
- 00:07:03 be cool but anytime you're building
- 00:07:04 something with like a trial mode or like
- 00:07:07 a demo you can do write all the code
- 00:07:09 that deals with authentication it
- 00:07:10 expects to use it to be there a get
- 00:07:12 object and have their identity but you
- 00:07:15 needed to other sounding anonymous so
- 00:07:16 everything happens as it would normally
- 00:07:18 but they're anonymous yes and one of the
- 00:07:20 really cool part services more advanced
- 00:07:22 about authentication is that if you had
- 00:07:25 a float where someone comes to your
- 00:07:26 website they're trying something maybe
- 00:07:28 they're you're creating a document or
- 00:07:29 something you tie that to that anonymous
- 00:07:32 user ID now they go when they say all
- 00:07:34 right I'm going to sign in with Google I
- 00:07:35 really like your service generally
- 00:07:37 that'd be a really hard transition in it
- 00:07:39 you'd have to like look at the anonymous
- 00:07:41 data and migrated or something when they
- 00:07:43 found out Google which firebase
- 00:07:44 authentication is one method called
- 00:07:46 linking the credential okay and when you
- 00:07:49 do that you say all right I'm currently
- 00:07:50 an anonymous user but I just signed in
- 00:07:52 with Google so I can link that now that
- 00:07:55 anonymous credential and that Google
- 00:07:57 credential all tie back to the same user
- 00:07:59 mm-hmm so when if they come back sign
- 00:08:01 with Google it's the same versus and if
- 00:08:03 they said oh I want to add Facebook and
- 00:08:05 Twitter login as well this can all tie
- 00:08:07 back to the same credential that same
- 00:08:08 user ID so regardless of how they're
- 00:08:10 choosing designs in they're all linked
- 00:08:12 together that's pretty useful it's also
- 00:08:14 also be educated so yes it's all in the
- 00:08:16 etiquette but that's process very useful
- 00:08:18 and so on I guess I thought in Google
- 00:08:21 i/o the role the MU teacher we're
- 00:08:23 basically we get a like a number of key
- 00:08:24 on our phone which can use to to sign in
- 00:08:27 yes yes on integration
- 00:08:29 is part of us integrating with fabric
- 00:08:31 that you might've heard we recently
- 00:08:32 joined forces with the fabric team from
- 00:08:35 Twitter and the phone authentication is
- 00:08:37 exactly that you enter a phone number to
- 00:08:39 text someone a unique code and enter
- 00:08:41 that code and they've signed it so they
- 00:08:43 don't even have to have a Google account
- 00:08:44 or Facebook account or anything like
- 00:08:45 that
- 00:08:46 it was pretty useful – and that's
- 00:08:47 basically authentication let me see is
- 00:08:49 more to it we can Cisco life like
- 00:08:51 templates which we send for email
- 00:08:52 notification and resetting and then when
- 00:08:55 you get users we can actually show that
- 00:08:57 me demo because it setups we can use
- 00:08:59 sign up and which will just seem to
- 00:09:01 execute this method here so if we enter
- 00:09:03 some email address and some valid
- 00:09:06 password there or we try invalid one
- 00:09:08 first and click sign up now we actually
- 00:09:10 get here here because I am catching it
- 00:09:12 here so that's the default our Bates
- 00:09:15 message elements which is always just a
- 00:09:17 tiny thing when it's nice we get the
- 00:09:18 final meta – you know error code or code
- 00:09:21 we have two parts and then really just
- 00:09:23 display the message character to the
- 00:09:25 user because that's pretty useful but if
- 00:09:26 we then switch to the correct
- 00:09:28 credentials were actually locked in on
- 00:09:31 canal's you here refresh the users that
- 00:09:34 you know that's actually user ID which
- 00:09:37 we can also get in the SDK to get exact
- 00:09:39 right do whatever want and come back to
- 00:09:42 what we want to later when we match it
- 00:09:44 to database data so that's the database
- 00:09:46 next future arm but don't you give us a
- 00:09:49 brief overview yeah so the permit real
- 00:09:51 time database is extremely simple real
- 00:09:55 time database and it's not a term you'll
- 00:09:58 hear a lot because not many databases
- 00:10:00 that have real time functionality but
- 00:10:02 basically what this means is that the
- 00:10:04 knee of a client you can use our SDK to
- 00:10:07 interact directly with the database so
- 00:10:09 you're not dealing you're not like
- 00:10:10 calling a server
- 00:10:11 and having your no dress like right to
- 00:10:13 Mongo and then Raymond API is talking
- 00:10:16 directly to the database and saying I
- 00:10:17 want to put this data expectation and
- 00:10:19 any other client who's interested in so
- 00:10:21 if you're building like a chat
- 00:10:22 application every other client who wants
- 00:10:25 to know when a new message hit that it
- 00:10:26 can get updated in real time so you're
- 00:10:28 dealing with like
- 00:10:29 asynchronous handlers instead of HTTP
- 00:10:32 requests do get the data other new
- 00:10:35 messages no other messages no so it's
- 00:10:37 really clean easy to use model through
- 00:10:39 building
- 00:10:40 oh yeah and which is that it's for
- 00:10:42 interesting because I actually get this
- 00:10:44 question a lot in common and in our area
- 00:10:47 that the question is how can I reject
- 00:10:50 your database for my angular app and the
- 00:10:52 answer is you can't you can't better to
- 00:10:54 connect to a database or you shouldn't
- 00:10:55 yeah you can connect to a server which
- 00:10:59 then connects to the database and
- 00:11:01 fetches data and sends it back to you
- 00:11:03 but that obviously requires you to set
- 00:11:06 up a server and if you want real-time
- 00:11:07 integration you need to use WebSockets
- 00:11:09 or basically that and believe with that
- 00:11:11 and setup that on your own or and some
- 00:11:15 polling where you'll send a request and
- 00:11:17 we second or something like that and
- 00:11:19 here it's super simple because the the
- 00:11:21 API is super simple to use here it gets
- 00:11:23 us listen to messages method where I
- 00:11:25 simply use the of a reference for that
- 00:11:27 basically points to a certain part in
- 00:11:29 the database right and then we just
- 00:11:32 specify on every new event I want to do
- 00:11:34 something with the data and that's super
- 00:11:36 super helpful here completely different
- 00:11:39 why haven't you met databases if you've
- 00:11:41 tried any of the other options out there
- 00:11:44 is so much is yet so much similar we can
- 00:11:47 actually show this to you because we do
- 00:11:48 have it here in the demo so if I enter
- 00:11:50 some test message here no actually will
- 00:11:54 include put it side-by-side so that if
- 00:11:57 we know and you're just test message we
- 00:12:01 actually see it appear here instantly
- 00:12:03 level the top of the nice to know it
- 00:12:05 super fast right yeah and Emmy it looks
- 00:12:08 like I mean we're dealing with two tab
- 00:12:09 from say computer here so you might have
- 00:12:11 like our team local it's synchronizing
- 00:12:13 back and forth but that's not what's
- 00:12:14 happening this is going all the way to
- 00:12:16 the data center from one tab all the way
- 00:12:19 back yes so this is a complete
- 00:12:20 round-trip the same type of performance
- 00:12:22 you'd expect if you are in New York and
- 00:12:24 I was in Berlin or anything crazy like
- 00:12:26 that it's that type of speed yes the
- 00:12:29 dead reduce to process so we were doing
- 00:12:30 this edge of maintaining socket
- 00:12:33 connections heavily optimized protocols
- 00:12:35 and a lot of things way over my head
- 00:12:37 all I know is that it works and it syncs
- 00:12:39 my my data
- 00:12:40 yes it doesn't eat and we can actually
- 00:12:45 see the other way around if I change it
- 00:12:47 here in the database like test message
- 00:12:49 and at my explanation marks we enter if
- 00:12:52 it really doesn't define us and it hit
- 00:12:56 into the updates they're like yeah so
- 00:12:58 generally we try to keep a round-trip
- 00:13:01 time under the threshold of human
- 00:13:04 reaction time which is about 200
- 00:13:06 milliseconds so hopefully if it's change
- 00:13:08 a change should be fast enough that you
- 00:13:09 should be able to notice the delay so
- 00:13:12 it's pretty bad
- 00:13:14 yeah it really assessment yeah as
- 00:13:16 refasten super helpful because just
- 00:13:18 again all I did is I used database
- 00:13:21 reference then basically specifially
- 00:13:23 code stop for the treatment database you
- 00:13:26 could say not a table that's maybe
- 00:13:29 interesting we don't have multiple
- 00:13:30 tables right we have like a casein data
- 00:13:33 ski if exactly all your data and purpose
- 00:13:35 is traces yes you can think of it as
- 00:13:38 Jason when you get it back into Java
- 00:13:40 into javascript or into any of your
- 00:13:41 other apps they're always native objects
- 00:13:43 represented in a way that feels natural
- 00:13:45 so in JavaScript that's always just a
- 00:13:48 plain Java object and if you're
- 00:13:49 wondering what can I put into this
- 00:13:51 database which other types anything you
- 00:13:53 get your own jason we store both in here
- 00:13:55 and it's really cool because you can
- 00:13:56 actually take any given piece of
- 00:13:58 information in your database and get it
- 00:14:00 back as jason yeah so if you're dealing
- 00:14:02 with a legacy platform if you're like I
- 00:14:05 have application rigid PHP and I wanted
- 00:14:08 to use real time database you can use a
- 00:14:10 REST API can get back and talk in Jason
- 00:14:13 and it'll send out real-time updates
- 00:14:15 just as if you reduce it realized okay
- 00:14:17 that's cool and where's this key
- 00:14:20 actually coming from so we didn't pass
- 00:14:22 it there so it is related to how we pass
- 00:14:25 it with the push method so that's
- 00:14:27 probably interesting too we get two
- 00:14:29 different ways of setting data right
- 00:14:30 after week which are these yes so your
- 00:14:32 two real methods for writing there's
- 00:14:34 actually three so the set up date
- 00:14:37 portion set and update basically the
- 00:14:40 same the big difference is that you give
- 00:14:43 a specific location so hi would say
- 00:14:44 messages message one set this value and
- 00:14:48 that exact location would get set
- 00:14:50 Valluvar David pushing is a little
- 00:14:52 different because of the way the
- 00:14:53 real-time database works where we have
- 00:14:55 one data source being written to by
- 00:14:57 potentially tens of thousands or
- 00:14:58 hundreds of thousands of clients we need
- 00:15:00 to make sure that these unique IDs can
- 00:15:03 get added and you can make lists where
- 00:15:05 people aren't over rating each other
- 00:15:07 could you imagine if you had messages as
- 00:15:09 a traditional array where your keys were
- 00:15:11 integers and it's just like message zero
- 00:15:13 message one message – if you have things
- 00:15:15 moving this fast and tens of thousands
- 00:15:17 of people doing it the likelihood you're
- 00:15:20 going to be a message for and two people
- 00:15:21 against I write to five is really really
- 00:15:23 high so what we do instead of using
- 00:15:25 those keys is we use what we call push
- 00:15:27 IDs which is this crazy idea here which
- 00:15:30 are Alexa graphically sorted keys okay
- 00:15:32 so the really long way of saying if you
- 00:15:34 push in a message later it will show up
- 00:15:37 later so they act just like pushing onto
- 00:15:40 an array but they're sensitive to race
- 00:15:42 conditions where you don't have to worry
- 00:15:44 about race conditions and I don't have
- 00:15:45 to worry about people over writing each
- 00:15:46 other if a hundred thousand people push
- 00:15:48 to the same location at the same time
- 00:15:50 they're not getting that same push ID so
- 00:15:52 every single one of those records is
- 00:15:53 gonna be there that's interesting inside
- 00:15:55 so just not a random string but actually
- 00:15:57 a random stream which keeps track you
- 00:15:59 order yep yep so it's really important
- 00:16:01 sorry for building a chat like this on a
- 00:16:02 bush later my trap messenger belated in
- 00:16:04 chat so that's that's lessons like um
- 00:16:07 and actually now if we if we well we saw
- 00:16:12 it before but if we now want to read it
- 00:16:13 then the educator will video on method
- 00:16:16 and they're always in a an alternative
- 00:16:18 site we can all just get one data the
- 00:16:20 once message so I'm technically on set
- 00:16:23 up an ongoing listener and once it's
- 00:16:26 just getting once and pretend like yeah
- 00:16:28 yeah exactly
- 00:16:29 so once is the more traditional we're
- 00:16:31 hitting an HTTP endpoint getting the
- 00:16:33 data back one that exactly that's at
- 00:16:35 once if you want to drill time updates
- 00:16:37 are using on yes I guess we go into that
- 00:16:41 we use the SDK and how it works in a
- 00:16:44 line video where we go back to the other
- 00:16:45 features turnout um real quickly maybe
- 00:16:48 let's the storage that's um like just a
- 00:16:52 traditional cloud storage can all be
- 00:16:54 used in our application you're pretty
- 00:16:55 SDK doesn't work saying and the
- 00:16:57 interesting part which makes it not so
- 00:16:59 traditional is actually that we can
- 00:17:03 easily upload all
- 00:17:04 files for the SDK again so we don't have
- 00:17:06 to waste bigger of pause or do any
- 00:17:09 multi-part
- 00:17:10 order keeping and stuff like that we
- 00:17:12 just call a message yep yeah
- 00:17:14 traditionally file uploading is one of
- 00:17:16 those things that seems super simple
- 00:17:17 like I just take take binary dance is it
- 00:17:20 yeah but it's super complicated if
- 00:17:22 you're dealing with mobile networks
- 00:17:23 where people have flaky connections so
- 00:17:25 the likelihood your data is going to get
- 00:17:26 messed up it's super high there's so
- 00:17:28 many concerns that come with uploading
- 00:17:30 things and even once you get it uploaded
- 00:17:32 there's security that think about what
- 00:17:33 did they just upload to my server is
- 00:17:35 this actually an image or is it some
- 00:17:38 malicious binary you don't know so
- 00:17:40 storage takes care of a lot of that
- 00:17:42 cloud storage for firebase will let you
- 00:17:45 restrict what people are uploading you
- 00:17:46 can say they can only upload images that
- 00:17:48 are so large
- 00:17:49 let me check mine types that they have
- 00:17:51 to be an image and you can say who can
- 00:17:54 run where you can say alright this user
- 00:17:56 has a directory that is their folder but
- 00:17:59 they can do whatever they want that can
- 00:18:00 upload anything they can delete anything
- 00:18:02 we aim anything but they can't touch
- 00:18:04 anyone else's data so your again you'd
- 00:18:06 like that security aspect that's so
- 00:18:07 important we take care of for you and we
- 00:18:10 give you a really easy way to configure
- 00:18:11 so that your application lets your users
- 00:18:13 interact resided in the way they want
- 00:18:15 and this is all completely separate from
- 00:18:16 everything else so even if they did
- 00:18:18 manage to upload some malicious binary
- 00:18:20 it's never going to influence your cloud
- 00:18:22 function like it's not going to be able
- 00:18:23 to get over there yes so it's just a
- 00:18:26 really clean easy to use way to upload
- 00:18:28 images files anything you want yeah so
- 00:18:31 the story safely away and not running
- 00:18:32 for the same server blurred illegally
- 00:18:34 it's not easy go at it yeah and we can
- 00:18:37 configure it everything else here on the
- 00:18:38 rule so we can get you lost down we can
- 00:18:40 upload wise you can upload away
- 00:18:41 everything like that cool um and then
- 00:18:44 maybe to to wrap it up quick walk
- 00:18:46 through hosting and functions yep so
- 00:18:48 hosting is difficult Hosting is if
- 00:18:51 you're building an angular app that's
- 00:18:52 entirely client-side is going to use s
- 00:18:54 up as an entirely client-side
- 00:18:56 you might be asking stuff where do I
- 00:18:58 host this how do I should get this
- 00:18:59 public that people can use it and you're
- 00:19:01 a few options people think of like
- 00:19:03 github pages a lot which is not the
- 00:19:06 greatest solution and the main reason is
- 00:19:08 that it is a single server or a single
- 00:19:11 point cell or it what I should know No
- 00:19:13 but for a long time if you have a page
- 00:19:17 hosted there it would be one server and
- 00:19:19 if I was in Berlin and I hit that page
- 00:19:22 it would have to go all the way to
- 00:19:23 wherever that there's one hosting is a
- 00:19:25 real easy way to deal with static sites
- 00:19:27 that are distributed on a CDN so if you
- 00:19:30 have one site you say on a deploy this
- 00:19:32 using the command line tools we offer
- 00:19:34 and it sends it out to like 30 different
- 00:19:36 servers all in key points around wall to
- 00:19:38 whatever your user is they're getting
- 00:19:40 that app serve to them as fast as
- 00:19:41 possible cool so it has that and then it
- 00:19:44 also has some cool integrations with
- 00:19:45 functions and caching and things like
- 00:19:48 that so you can cache function responses
- 00:19:50 and it's actually really really powerful
- 00:19:51 but its simplest mode it's just a great
- 00:19:53 great place to prepare applications yes
- 00:19:55 and actually easy to get at SSL
- 00:19:57 Certificates you right oh yeah you get
- 00:19:58 one thing people to get one by the
- 00:20:00 college app so by default with no effort
- 00:20:02 from you you get something dot firebase
- 00:20:05 opcom totally your project entities
- 00:20:07 they're ours here is like birch at 75 P
- 00:20:09 32
- 00:20:09 that's very base outdoor yeah that's
- 00:20:11 great but not very friendly
- 00:20:13 let's see instead of a custom domain you
- 00:20:15 just routed it to us and say all right
- 00:20:16 now when you domain we eat your an SSL
- 00:20:19 certificate we enforce that all users
- 00:20:21 use SSL which everything is nice and
- 00:20:23 secure and it's something that's really
- 00:20:25 very useful and cost of something
- 00:20:28 interesting to which we can talk about
- 00:20:29 at the end but um just a quick look
- 00:20:32 would functions we had a brief look
- 00:20:33 you'll reset it it's basically a place
- 00:20:35 we can run code in the cloud right not
- 00:20:38 saying only jealous type code right you
- 00:20:40 know so you get access to a full
- 00:20:42 operating system like Linux environment
- 00:20:44 but we only officially support in there
- 00:20:46 just you can't do crazy stuff if you
- 00:20:47 really want to and like upload binaries
- 00:20:49 and run node but right now all our epic
- 00:20:51 is our JavaScript element but which
- 00:20:53 makes sense because I gets to node.js
- 00:20:54 since we work along with cello cello
- 00:20:57 scope these days is like a million we
- 00:20:59 wanted it to feel as natural to web
- 00:21:01 developers as possible so if you you
- 00:21:04 know are used to scripting up little
- 00:21:05 JavaScript logic it's literally like one
- 00:21:07 extra line like import our SDK into node
- 00:21:09 and then deploy it on up and you're good
- 00:21:11 function yes so that's that's really
- 00:21:13 nice you is it finally a pricing maybe
- 00:21:16 arm we can actually teach it we have you
- 00:21:19 have to pre different plan your arm like
- 00:21:21 where is the sparkle and every new
- 00:21:22 project starts
- 00:21:24 or cleanse because and then we have the
- 00:21:26 choice between two pay plans either the
- 00:21:28 win which has like a fixed capped amount
- 00:21:31 yeah but when we talk about capitals it
- 00:21:34 will cap some other things yeah anyway
- 00:21:36 it'll cap your your growth yes so if you
- 00:21:39 had say I only have twenty five dollars
- 00:21:41 a month to spend that is my limit and
- 00:21:44 I'd rather have everything stop it if it
- 00:21:46 goes past that you can use that fix
- 00:21:48 Alaska so it's basically like a very
- 00:21:50 strong city net but the bad part is if
- 00:21:52 you do go past that you'll have to
- 00:21:54 either quickly switch to blaze or deal
- 00:21:57 with downtime in your application if you
- 00:22:00 don't want that and what it's honestly
- 00:22:02 cheaper most of the time is to use the
- 00:22:04 blaze plan which is just pay-as-you-go
- 00:22:06 every firebase feature is either free or
- 00:22:08 has a cured or attitude today as you go
- 00:22:12 usage so for every gigabyte storage into
- 00:22:14 this month and almost everyone I've ever
- 00:22:17 seen who is on a plane plan should
- 00:22:19 really be on the blaze plan because it's
- 00:22:23 just you get a ton from like the ability
- 00:22:26 to use less it doesn't use two dollars
- 00:22:28 worth of storage or you use five cents
- 00:22:30 worth of real-time database that's how
- 00:22:32 you pay for with the place where with
- 00:22:35 the twenty five dollar amount on your
- 00:22:36 o'clock dad $25 yell on yeah that
- 00:22:40 doesn't leaves like an important thing
- 00:22:42 to say because I think some people might
- 00:22:44 look at this and say okay here like plan
- 00:22:46 I have to danger of paying too much and
- 00:22:48 actually here with place I'm you up to
- 00:22:50 guarantee to pay yeah 25 dollars a month
- 00:22:53 and if you need more than that you ever
- 00:22:55 cap as it has to grow qf which is
- 00:22:57 probably don't want to do now or it's
- 00:22:59 fine if you pay more because you're EPS
- 00:23:01 growing and then well yes we cover you
- 00:23:03 exactly and honestly 25 bucks a month is
- 00:23:06 a ton of firebase you can look through
- 00:23:07 this list but a lot of these things are
- 00:23:09 included for free things like fire bits
- 00:23:11 cloud messaging are completely free even
- 00:23:14 if you send a billion messages a month
- 00:23:16 I run a bunch of side projects and apps
- 00:23:18 and pirates and my total bill is in the
- 00:23:21 double digits and the obscenities that
- 00:23:22 came to steam box a lot because all
- 00:23:25 these things are really designed so that
- 00:23:27 you can get going easy and two years
- 00:23:29 down the road when you are a really good
- 00:23:31 company and you need more power then we
- 00:23:34 have more powerful us Google cloud if
- 00:23:36 you want to go there yes but this is for
- 00:23:39 young young company in started you're
- 00:23:41 building prototypes and things like that
- 00:23:43 so you learn how great our ecosystem in
- 00:23:45 and that's why it's incredibly cheap
- 00:23:46 yeah I I agree three a nice option and
- 00:23:50 yes definitely one which allows you to
- 00:23:53 will after all right that was a nice
- 00:23:56 introduction
- 00:23:56 um or don't we take it from there and
- 00:23:59 never till to look at the database
- 00:24:00 awesome
- 00:24:01 yes