Coding

Firebase Overview | Firebase with Abe (Google Developer)

  • 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