What is a NoSQL Database? How is Cloud Firestore structured? | Get to know Cloud Firestore #1

Поделиться
HTML-код
  • Опубликовано: 13 янв 2025

Комментарии • 485

  • @Firebase
    @Firebase  6 лет назад +143

    Let us know what you'd like to see covered in this series in the comments!

    • @uziao
      @uziao 6 лет назад +5

      Please help us with SQL Databases to migrate to NoSQL! :)
      Greeting from Brasil
      (Ormando - Colatina/ES)

    • @TheGrafox
      @TheGrafox 6 лет назад +8

      Best structure database for real world project like shopping products or post.

    • @SreekanthKrishnan
      @SreekanthKrishnan 6 лет назад +12

      1. Structure for feeds in social media app
      2. Advanced querying with multiple fields
      3. Possible issues if your app gets 1 Million downloads in a day :P (Best practices to make sure things don't break on scaling up)
      4. How to maintain consistency of duplicated data
      5. How to deal with aggregation queries when device is offline. For example user clicked like button. Like count needs to be incremented but transactions won't succeed or cloud functions won't execute as device is offline.
      6. Complete real world examples for social media, shopping, messaging etc.

    • @PrayudiSatriyo
      @PrayudiSatriyo 6 лет назад +4

      #AskFirebase How do we backup and restore databases so we can have PROD and DEV environment? In SQL, we can simply perform backup and then restore it using a different name.
      My startup is based in Indonesia, currently building a new Android app using Firestore as the backend.
      We need to have PROD and DEV environment. DEV is for Internal Test, Alpha, and Beta.

    • @AshishYadav-eh8bl
      @AshishYadav-eh8bl 6 лет назад +1

      Topics like data optimization and writing queries.

  • @vigneshr5329
    @vigneshr5329 6 лет назад +131

    Todd is definitely one of the best presenters. Would love to see more from him.

  • @codinginflow
    @codinginflow 6 лет назад +232

    Your explainer videos are amazing

  • @bushbuddyplatypus
    @bushbuddyplatypus 2 года назад +29

    Instant fan here. This is so understandable and engaging. Much better than any other tutorials I've seen in a long while.

  • @ne2r
    @ne2r 5 лет назад +35

    I should have watched this video before developing my app with Firestore. Everything makes so much sense now.

  • @luisfittkau9322
    @luisfittkau9322 Год назад +2

    After watching this, I immideately feel like I understand what the core idea of firestore is and the difference compared to a SQL database. Totally awesome

  • @epajarjestys9981
    @epajarjestys9981 6 лет назад +19

    This is an awesome introduction. Excellently clear and to the point explanations of the basic concepts with all the important context.
    This guy has got great talent as a teacher.

  • @jesselima_dev
    @jesselima_dev 6 лет назад +70

    This is one of the best videos you guys posted about Firestore. Really good one! I like this guy explaining.

  • @chanlito4896
    @chanlito4896 6 лет назад +327

    A BIG thumb up 😅 for this video.

    • @andriys5772
      @andriys5772 5 лет назад +5

      ​@@ToddKerpelmanCorp you remind me an actor Robin Williams. Thank you! 👍

    • @enriqueeee
      @enriqueeee 5 лет назад +7

      I was looking for a comment about his thumb, thanks !

    • @vitikahappy
      @vitikahappy 4 года назад +3

      Came down here to leave the same comment ;-)

  • @27sosite73
    @27sosite73 2 года назад +3

    the guy is briliant
    himself!
    kept me hiper concentrated for the whole video. awesome

  • @gamingmode8942
    @gamingmode8942 4 года назад +23

    10:56 Firestore rules
    Firestore rules:
    10:59 first rule: collections can only contains documents nothing else
    11:04 second rule: documents can only be 1 MB less inside
    11:09 third rule: document can not contain another document
    11:15 a document can contain collections of documents, and each documents a collection of documents, and so on
    11:23 fourth rule: root can only contains collections
    11:47 query

  • @OnionKnight541
    @OnionKnight541 5 лет назад +55

    "In the Realtime Database world, when you retrieve some element in the tree, you automatically retrieve everything below it. And that would mean downloading potential hundreds of [elements] anytime I want to grab a couple dozen [elements]... But in Cloud Firestore world, queries are shallow by default." (This is a big point that a lot of beginner Firebase programmers should keep in mind).

    • @brianoliveira5471
      @brianoliveira5471 3 года назад +4

      But if you actually need a lot of data and everything below it, you need to create a lot of queries because Firestore is shallow by default and that's a big deal. It all depends on the way you're modeling. You can use indexes to help in this process of querying and some techniques in Realtime Database too, as well you can do that in Firestore. NoSQL is a fun world to explore! (:

    • @klaudiaadamus3353
      @klaudiaadamus3353 3 года назад

      @@brianoliveira5471 Oh my, I'm getting a heart attack just thinking about it. 😬 Why would anyone want to use it?! Can someone explain, please?

    • @huntergroton
      @huntergroton 9 месяцев назад

      @@klaudiaadamus3353 are you asking why anyone would want to use shallow queries?

  • @gothakane
    @gothakane 6 лет назад +59

    You actually addressed everything I was thinking as someone coming from a relational DB background. Impressive! Like you were reading my mind. Still not entirely convinced but trying it out.

  • @waleedalrashed1411
    @waleedalrashed1411 5 лет назад +9

    Why is this video the absolute perfection?

  • @jamesgaroutte7579
    @jamesgaroutte7579 4 года назад +2

    As a developer with a long history of using SQL databases, this is the exact information I was looking for!

  • @AlmostM
    @AlmostM 2 года назад +5

    Really well explained! I kept thinking to myself questions as you went, like "How can I fetch related items without joins?" and "Won't that result in duplicate data that can be out of sync?" and each time within less than a minute you brought up the same question and gave great answers :)

  • @rawtale97
    @rawtale97 2 года назад +4

    Completely lost when I first encountered the reference of “Collection” and “documents”, making the specific relationship was hard, but now I can see all of the benefits in doing it this way, thanks for the video, it is a recommendation sorely lacking from guides.

    • @Firebase
      @Firebase  2 года назад

      We appreciate your support, Juan! Thank you so much for leaving this feedback for us 😄

  • @Glenn.Cooper
    @Glenn.Cooper 3 года назад +1

    That's the best intro description I've heard to describe a NoSQL database. Thanks!!

    • @Firebase
      @Firebase  3 года назад

      Glad you like it!

  • @jdcoding1012
    @jdcoding1012 6 лет назад +1

    I remember the time when I am new to no sql database. So confusing. But now, I am enjoying and have understand this no sql database.
    Now, I am using cloud firestore db in every app I am working for school. It made my work easier and faster. Thank you, firebase team! Especially to Todd, big thumbs up for you! 👍

  • @pablokatt
    @pablokatt 6 лет назад

    Oh man! If all videos in the internet would be explained like this humanity would get the next level his evolution! Thank you so much!

  • @CoryMcaboy
    @CoryMcaboy 6 лет назад +13

    I have been using Firestore for my app. I would recommend fixing the following deficiencies prior to coming out of BETA:
    1) Ability to use the not equal operator "!="
    2) Support for OR logic in where clause
    3) Offline support for Web.
    4) Support for Android in React Native (Android does not currently work with React Native without unsupported workarounds).
    As of the current state, I would only recommend Firestore for very simple MVP's and concept testing purposes. I would not recommend it for a production application (hence why it is in BETA ^^)

    • @topolichio
      @topolichio 6 лет назад

      I understood that with RNFirebase you could use firestore on android, it's not possible?

    • @cutiko
      @cutiko 6 лет назад +3

      Dude this is a complete video explaining why there is no such a thing a SQL query and still, you ask for "Ability to join...", seriously?

    • @ValAllenSamonte
      @ValAllenSamonte 6 лет назад

      Offline support for web is there by calling enablePersistence? Am I missing something here? firebase.google.com/docs/firestore/manage-data/enable-offline

    • @CoryMcaboy
      @CoryMcaboy 6 лет назад

      Aquilino Méndez you are fine if you use that library. I should have specified that I am using expo, which does not support that library.

    • @CoryMcaboy
      @CoryMcaboy 6 лет назад

      cutiko thanks fam

  • @PDXdjn
    @PDXdjn 2 года назад +1

    Great explanation!
    Possibly the first video I've ever seen where the presenter's "You're probably thinking _____, right?" interjections were in fact precisely what I was thinking.

    • @Firebase
      @Firebase  2 года назад

      Thanks for the love! We're so happy you found this helpful!
      Be sure to subscribe to keep up with the latest from Firebase:
      goo.gle/3dyeCpY
      Happy learning 😎

  • @Juan-lb5wu
    @Juan-lb5wu 5 лет назад +1

    It's a luxury to have this video series. Thanks for your work .

  • @adityajain5135
    @adityajain5135 4 года назад +1

    "Worst thing to happen in programming, since GOTO statement" I am going to borrow this line.
    Awesome Tutorial !!

  • @suraj0223
    @suraj0223 4 года назад +1

    You are really a genius, this is one of the best videos I discovered about Cloud Firestore.

  • @ralhamami
    @ralhamami 3 года назад +2

    Dude, what a great video. Very easy to follow. Great explanations. Just the right amount of humor. Thank you! :)

  • @BreakingBarriers2DIY
    @BreakingBarriers2DIY 4 года назад

    What a talent for presenting information. I could listen to this gentleman all day. Great job. Looking forward to running video #2.

  • @eliseerickson5994
    @eliseerickson5994 4 года назад

    My education is in relational databases but the fact the Google hosts and scales the database for you has me hooked

  • @ug3469
    @ug3469 2 года назад

    The drawings and the clear and step by step explanations with examples are making it a great video along with that great sense of humor. Thank you so much :)

  • @basiccoder2166
    @basiccoder2166 8 месяцев назад +1

    whoa did any one notice on PC at 15:11 when author says subscribe to our RUclips channel the subscribe button have a animation effects outside the video this is super cool!!!

  • @reactnativedeveloper1682
    @reactnativedeveloper1682 2 года назад +1

    i was confused in firestore but your video helped in understanding it .enjoyed a lot.

    • @Firebase
      @Firebase  2 года назад +1

      We're glad to hear the tutorial was helpful! Be sure to check out the links in the description for more tips and tutorials 😎

  • @hongcai4617
    @hongcai4617 3 года назад

    This video is so easy to understand and giving examples at the right time when I started to get confused! thumbs up for you

  •  Год назад

    Todd, I love the way you talk, your jokes.
    I wish you made every tutorial

  • @thebeautifulroads
    @thebeautifulroads 5 лет назад +4

    Describing complex things in a simple way. Thanks!

  • @ChrisMercredi
    @ChrisMercredi 2 года назад +1

    This guy makes the best videos for real. He should make all the videos for flutter/firebase.

    • @Firebase
      @Firebase  2 года назад

      Thanks for the love, Chris! Glad you enjoyed the video 😎
      Be sure to check out the links in the description for even more great content!

  • @orange-vlcybpd2
    @orange-vlcybpd2 2 года назад +1

    That was the missing link for me. Didactically outstanding Explanation, and Presentation. Thank you, Todd

  • @CodeLove-v6r
    @CodeLove-v6r Год назад +37

    Anyone in 2024...🤚

  • @thiashomme
    @thiashomme 6 месяцев назад

    Incredible explanation, that's some proper communication skills right here! Thanks a lot!

  • @michelkant
    @michelkant 5 лет назад +13

    awesome explanation!! "Why optimize for the thing that happens 1 time instead of the thing that happens 7000 times" -> That's makes a lot of sense :D

  • @gambaweb
    @gambaweb 3 года назад

    This guy is crazy good at explaining, Well done.

  • @marlonsubuyu2012
    @marlonsubuyu2012 4 года назад +1

    This is my introduction to NoSQL and the collections make sense now to me

  • @krislercanlas9800
    @krislercanlas9800 Год назад

    I'm new to NoSQL and was confused as first, thanks for your detailed and easy to follow explanation!

  • @lekahuna
    @lekahuna 3 года назад

    Defensive programming and checking received data on client side are mentioned at 4:20
    Should I really check each field of the document for existence and type when received? And if it not matching the expectation use fallback values and log an error (i.e. with Crachlytics)?
    How defensive are you guys programming your client side?

  • @anthonyglover2700
    @anthonyglover2700 5 лет назад +1

    Good job making a dry topic actually fun to watch!

  • @courageous-schools
    @courageous-schools 6 лет назад +5

    This is a fantastic video. Very well explained and the pace is spot on. Are there any other episodes in this series. If so, how do I find them?

  • @lemuffinity
    @lemuffinity 6 лет назад

    That's solid! You managed to explain to a database newbie what a NoSQL database is. Thanks!

  • @CameronChardukian
    @CameronChardukian 4 года назад +1

    I'm just learning about Firestone for the first time. You did a phenomenal job of explaining things here! :D

  • @lucaban
    @lucaban 3 года назад +1

    this is the best series since bread came sliced

    • @Firebase
      @Firebase  3 года назад

      Glad you enjoyed!

  • @youssefouirini5597
    @youssefouirini5597 5 лет назад

    Best noSQL education short I've ever seen.

  • @johnagorman
    @johnagorman 2 года назад +1

    Hope the thumb is better (and that it did not take 4 years to heal).
    GREAT video. Thanks!

  • @phong764119
    @phong764119 5 лет назад +1

    7:39 now the problem is when i have to update every (sub)user document, i have tried using collectionGroup so i can get all path of documents and add them to batch and update them. BUT this way have a limitation, the batch of writes can write to a maximum of 500 documents. So is there any other better way to do this?

  • @DavitBarbakadze
    @DavitBarbakadze 4 года назад

    Perfect explanation. Humankind requires more of such.

  • @pablo_hinche
    @pablo_hinche 2 года назад +1

    thith guy gets it. thith was dope. appreciate it thankyuhthomuch all yallth

  • @tomascarignano5002
    @tomascarignano5002 3 года назад +1

    Thank you guys! This was really nice.

    • @Firebase
      @Firebase  3 года назад

      Glad you enjoyed it!

  • @thedevguild7525
    @thedevguild7525 2 года назад

    Wow I was expecting you to cover briefly on NoSQL before moving on to Firestore
    But you also cover the essence of SQL
    I find it very insightful and would highly recommend all starting out as backend to view it.

  • @netokapps
    @netokapps 6 лет назад +1

    This is great video!
    I cannot wait for "Future episodes"!!

  • @ashutoshranjan4644
    @ashutoshranjan4644 Год назад

    Looking forward to this amazing series.

  • @yurowitz
    @yurowitz 7 месяцев назад

    I've watched dozens of videos about NoSQL and SQL databases but none of them really painted the real picture. This video is literally the best out there! Now I am excited to follow up on the remainder of the series. Thanks so much !

  • @Falzer
    @Falzer 8 месяцев назад

    You got my reaction 😂, i really freaked out and you said every worries i have! thanks for creating this video, I learned a lot

  • @zoudino1587
    @zoudino1587 5 лет назад

    One of the best tutorials I have ever seen!!!

  • @larbot3433
    @larbot3433 3 года назад

    I've been playing around with noSQL db a bit lately but this was actually a very helpful explanation of how to model the data and how it differs to relational.

  • @sidneymachara9773
    @sidneymachara9773 5 лет назад +5

    oookay .. thats some top notch explaining right there , keep it

  • @vvmanyam1
    @vvmanyam1 4 года назад

    wow!!! just wow!! excellent pace and extremely well presented!!

  • @hugolandreville853
    @hugolandreville853 6 лет назад +5

    Wow! I would like to say that anyone or any company who make some kind of tutorials video should take a good look at this video for how it should be done! Amazing clarity. Thank you.

  • @rammalvarez2664
    @rammalvarez2664 6 лет назад

    Nice! I'm devoloping my firsts apps with Firestore.... and boy! I love it, so simple. Great job guys! and keep the videos coming

  • @clovisrodyt
    @clovisrodyt 4 года назад +1

    Hi, it's really a very good video ... the contents and the animations you used ... If you allow, I would likw to ask you what tool di you use to make such animations, tables, arows ... Thanks

  • @Shogohod
    @Shogohod 5 лет назад +1

    This is the best guy described it so well and fun, thanks a million :)

  • @mauriciopatino5911
    @mauriciopatino5911 3 года назад

    How exciting! Looking forward to this!

  • @TheEkkas
    @TheEkkas 3 года назад +1

    There's no sequel for that thumbnail.
    You described the topic very well, thank you.

    • @Firebase
      @Firebase  3 года назад

      Thanks for that!

  • @lautarogarcia8038
    @lautarogarcia8038 3 года назад +1

    Thanks for this videos,, just what i was needing in this moment of my life.

    • @Firebase
      @Firebase  3 года назад

      You're so welcome!

  • @mojikashani2545
    @mojikashani2545 4 года назад +1

    Finally a great explanation from Google!👍

  • @RobertBrunhage
    @RobertBrunhage 6 лет назад +5

    Will you implement or in queries and also be able to query multiple fields? It's almost impossible to make so that a user is following people and displays all their posts in a feed.

  • @permanar_
    @permanar_ 5 лет назад +50

    "Since Go-To Statement" LOL IM DED😂😂😂😪😪

  • @wingyichau116
    @wingyichau116 6 лет назад

    Excellent illustration on what noSQL is. Thanks so much :)

  • @FilledStacks
    @FilledStacks 5 лет назад

    Awesome video Jeff. My first time actually learning about NoSQL after just hearing about it for so long. You've made it look very easy :)

  • @siddharthmanumusic
    @siddharthmanumusic 4 года назад

    Great presentation with illustrations! Loved how you introduced concepts along the way and kept one example going..

  • @NandaAcademies
    @NandaAcademies 3 года назад +3

    This is an awesome introduction, no doubt about it. But I expected few examples running on firebase/firestore to understand how it's really done.

  • @humaneBicycle
    @humaneBicycle 2 года назад

    i studied sql databases for and year and this is more clear. Thanks.

  • @konnekmed2010
    @konnekmed2010 6 лет назад

    Brilliant stuff. Got the sample IOS apps working with read and writes to my console and figured out the data model required for the build. Time to build the rest of the structure.

  • @Kurchack
    @Kurchack 6 лет назад

    Great video. I recently had to do some data duplication in order to accommodate certain user needs. This felt really dirty, but it's relieving hearing you talk about this like it's okay to do here and there.

    • @rammalvarez2664
      @rammalvarez2664 6 лет назад

      Happened to to my as well this couple days, have you tried to keep reference to your Id's in an opcional value of your model? It works for me when I retrieve the documents so you don need to duplicate data

  • @ellasaro
    @ellasaro 6 лет назад

    Does this mean you would have a "Reviews" collection for every "Restaurants" document? So excited about upcoming videos.

  • @soulmanifestation150
    @soulmanifestation150 3 года назад +1

    Thank you for this video series!!

    • @Firebase
      @Firebase  3 года назад

      You are so welcome!

  • @bitwisedevs469
    @bitwisedevs469 6 лет назад

    Well I really love Firebase Firestore but in 6:45 what you can do is to save the uid or User Id as a field to each documents of Reviews collection, then get the user information in User collection using that uid instead of updating each document field in Reviews collection such as user image just to match it on what is inside User collection. Am I right?

    • @bitwisedevs469
      @bitwisedevs469 6 лет назад

      The only drawback is that you'll need to get data in two ways first is to perform query inside Reviews collection and get the User data using uid field then query it inside User collection. But that's fine for me at least I can guarantee that I am getting a fresh and updated User data.

    • @bitwisedevs469
      @bitwisedevs469 6 лет назад

      #AskFirebase re update that part of video and explain this tricky part next time so that you can encourage more and more developers.

  • @cutiko
    @cutiko 6 лет назад +1

    This is the best explanation of why to migrate to Firebase: is a great serverless! No pain for developers, fast queries and scaling is not an issue

  • @mcdaddy1334
    @mcdaddy1334 3 года назад +1

    Informative video. VERY NICE!

    • @Firebase
      @Firebase  3 года назад

      Glad you liked it!

  • @marians.9010
    @marians.9010 4 года назад

    wow, now THAT's a high quality explanatory video!

  • @danvilela
    @danvilela 6 лет назад

    Awesome video! Watching the whole playlist now

  • @shoekneeawl
    @shoekneeawl 6 лет назад +1

    You guys put together some amazing videos, nice job. I would like to see videos on auth examples and security rules together. There are no detailed videos on this, yet they go hand in hand.

  • @DongryeongKim
    @DongryeongKim Год назад

    7:11 what's the go-to statement and what is the problem with it?

  • @solmillin
    @solmillin 3 года назад

    Great intro. I'll now watch your other videos. Thanks heaps !

  • @scottelfstrom
    @scottelfstrom 5 лет назад

    Thanks for the clear explanations and drawings. Very helpful.

  • @boyakoosha
    @boyakoosha 3 года назад +1

    Fantastic presenter! Great video thanks

    • @Firebase
      @Firebase  3 года назад

      Glad you enjoyed it!

  • @madhavmanocha4999
    @madhavmanocha4999 3 года назад

    Awesome explanation. Would give a big thumbs up...but I see, you already have one.

  • @PrayudiSatriyo
    @PrayudiSatriyo 6 лет назад +1

    #AskFirebase At 5:58:
    My plan is to have "Review "subcollection in every "Restaurant" document, but only contains the "User" ID, and my app will read the "User" data inside collection "User" every time a user access a specific "User" details.
    I am still confused on the term "read", detailed below.
    - If inside the "User" collection we have 1000 "User" documents and we want to read 1 "User" documents based on "User" ID (ID autogenerated by Firestore), do we use 1000 document read, or 1 document read?
    - If we want to read 1 "User" documents but not based on "User" ID (i.e. search by "location" column), and we found 42 "User" documents that match, do we use 1000 document read, or 42 document read?
    I am part of a new startup in Indonesia, currently building a new Android app using Firestore. We are excited about this new hot database!

  • @Ninja-nt6yt
    @Ninja-nt6yt 5 лет назад

    Amazing explanation with precise visuals.

  • @ghazyy1
    @ghazyy1 5 лет назад

    dude this tutorial is amazing !! thank you ! finally got idea about NoSQL databases

  • @BazDM
    @BazDM 6 лет назад +1

    Great video! So clear. Would like to hear more about syncing a top level doc with a child one - as mentioned at about 13:30

  • @ianfarai4982
    @ianfarai4982 4 года назад

    best teacher on youtube

  • @arafatzahan3697
    @arafatzahan3697 4 года назад

    I hope this guy is getting paid a lot cause his videos are fire

  • @vendetta3953
    @vendetta3953 6 лет назад

    hahahaha 7:03 that's what I'm currently feeling 🤣 having only SQL background this nosql thing is driving me crazy.
    Please keep bringing more videos on firestore. A separate playlist would be best :)