How do queries work in Cloud Firestore? | Get to know Cloud Firestore #2

Поділитися
Вставка
  • Опубліковано 30 січ 2025

КОМЕНТАРІ • 215

  • @Moelgaard85
    @Moelgaard85 6 років тому +262

    Best firestore video so far. Really calls a spade for a spade, talks about what you can do, what will be developed and what you can’t do. And many examples. Perfect. I am so tired of videos where everything is just perfect and avoiding the elephant in the room.

    • @srolesen
      @srolesen 6 років тому +8

      YES, this so much!!!
      so many realtime chat app guides pretending to have ANY useful features for real data usage.

  • @MartinRyleOShea
    @MartinRyleOShea 6 років тому +216

    The best tech evangelist of any tech company. This guy really knows his craft.

    • @vaguebrownfox
      @vaguebrownfox 4 роки тому +6

      He really helps me calm down my anxiety to start a project.

    • @RR-et6zp
      @RR-et6zp 5 місяців тому

      @@vaguebrownfox lol, how was your project

  • @Mrdoctordiv
    @Mrdoctordiv 5 років тому +297

    Watching this in 2020 with the 2019 update added in.. this. This is quality content. I chose the right platform for my web app.

    • @lesmo34
      @lesmo34 5 років тому +17

      ikr! I'm seriously troubled by the fact that it says it was published May 2018... you can either edit UA-cam videos with some sorcery I don't know, or they have a perfectly nice roadmap way ahead in time... I don't know.

    • @HieuNguyen-vk7ix
      @HieuNguyen-vk7ix 4 роки тому +23

      @@lesmo34 I mean, FireStore belongs to Google, UA-cam belongs to Google too. You know what I mean

    • @MatthewChenIsAwesome
      @MatthewChenIsAwesome 4 роки тому +14

      @@HieuNguyen-vk7ix yeah. as of now, IIRC only Google can edit their own videos

    • @rajpanchal9226
      @rajpanchal9226 4 роки тому +2

      @@HieuNguyen-vk7ix They should not do this tho its really dangerous, if suppose there's a really old video and someone describes newly found innovations in it the people who are the inventors of those innovations will have a hard time getting patents for those innovations.
      In fact if the tech in this video is patented by them in 2019 they might as well get into trouble.

    • @lesmo34
      @lesmo34 4 роки тому +3

      @Casuality videos edited in Creator Studio don't keep their original creation date ;)

  • @prashantraghu8536
    @prashantraghu8536 6 років тому +117

    Guys please make more such algorithmic videos explaining all the features in somewhat low level. This was simply amazing.

    • @crazysoap05
      @crazysoap05 6 років тому +2

      I don't think they are going to give their secrets away haha

  • @DavidUngerMusic
    @DavidUngerMusic 6 років тому +30

    I love how Todd makes seemingly complex ideas easy to understand. Bravo!

  • @OvenBakedCookie
    @OvenBakedCookie 4 роки тому +20

    Todd is bloody amazing. The pacing, examples, emphasis, humour, enthusiasm, level of technical detail; he is the perfect software trainer.

  • @kaibe5241
    @kaibe5241 2 роки тому +1

    hahaha, the time warps back to update the content is absolutely SUPERB! Bravo!!! *applauds*

  • @jhadesdev9576
    @jhadesdev9576 6 років тому +18

    Awesome video, probably the best i have seen on the topic, focuses on the Why and not the How, which is usually what gets overlooked in tutorials

  • @mandisaw
    @mandisaw 6 років тому +3

    Brief, but insightful, and a good bridge for the folks coming from a relational DB background. Structuring data to suit Firestore's query capabilities is the key takeaway here - that should be mentioned in the description. It's easy to miss it thinking "ah, I know how to query" - I know I nearly did.

  • @mgohds
    @mgohds 6 років тому +5

    This is great series. You are doing great job explaining basic behavior and are charismatic in the process which is rare in this kinda videos.
    Playlists also sure help a lot. Keep up the good work :)

  • @JanM457
    @JanM457 Рік тому +1

    I'm smashed by the fact that Ray's Restaurant scored over 4.5 stars just selling Radishes. What a guy!

  • @chriscurnow143
    @chriscurnow143 6 років тому +2

    Seeing this video pop up on my alerts made my day. And actually watching it was just as much fun and just as informative as I expected it to be. So.... when's the next one coming??

  • @zechcampbell
    @zechcampbell 6 років тому +2

    Amazing explanations about what Firestore can and cannot do. Wish there were more resources like this.

  • @DRocksRecords
    @DRocksRecords 4 роки тому +3

    Thanks, im starting to feel more confident about firestore as I watch.

  • @yashsoni1120
    @yashsoni1120 2 роки тому

    he is so good at this and everything kind of makes sense now! thanks for the series!!

  • @StephanieKraemer
    @StephanieKraemer 2 місяці тому

    I continue to be so impressed by the documentation and resources available for Google Cloud Platform. I learned to code less than two years ago and now I am creating Cloud Run services to query our firestore database, developing small apps that read and write to BigQuery, and designing SLO's. GCP is the best. (Also, 2019 Todd had such a glow-up!)

  • @quangquang4813
    @quangquang4813 6 років тому +7

    I have been waiting too long for this episode. :(( This is a great video anyway

  • @rawtale97
    @rawtale97 2 роки тому +2

    Had to go through variouse tutorials before understanding how I should make a propper query for Firebase, I think there might be a lack of examples in the docs and also in this video.

  • @albertodeveloper347
    @albertodeveloper347 6 років тому +2

    This teacher is VERY friendly!! thank you!! and now I go for vide #3 :)

  • @thedevguild7525
    @thedevguild7525 2 роки тому +2

    Wow did they update the video? I understand it is posted in 2018 but in 2:11, todd mentioned/"joke" it is the year 2019

    • @MrRousina
      @MrRousina 2 роки тому +2

      Lol I am just wondering the same, like was that in the original video or is it updated somehow xd

  • @KnO1951
    @KnO1951 4 роки тому +2

    Great presentation of the occasionally head-spinning content that you have made easy to consume. kudos!!

  • @davidpui4675
    @davidpui4675 2 роки тому +1

    How do you create a denormalized query output which can be populated from different nest collections ? Also can you also join results from different nested collections from different Firestore Projects ?

  • @choibaksa85
    @choibaksa85 5 років тому +21

    subtitle broken!

  • @BissoliR
    @BissoliR 6 років тому +4

    You guys should do a serie about Elasticsearch integration cause it seems a little frustrating not having this option til now. We need 'like' queries indeed.

  • @Qoor1994
    @Qoor1994 7 місяців тому

    Todd, you are amazing. Thank you for sharing your technical knowledge!

  • @27sosite73
    @27sosite73 2 роки тому +1

    awesome
    one more perfectly structured video!
    top!!!

  • @munzilirrohmah6425
    @munzilirrohmah6425 2 роки тому

    Hi Todd. This is the most enjoyable tutorial video I've ever seen 😂 Easy to understand and hilarious at the same time

  • @cyrilledakhlia3761
    @cyrilledakhlia3761 Рік тому

    Excellent content that makes it so fun to learn and makes me want to learn more about it!
    One of the best content I've seen!
    👏👏

  • @nldr_theunisdk
    @nldr_theunisdk 6 років тому +1

    The was super informative!! thanks! I am glad that there are more vids about the advanced features. You tend to miss them in the docs.

  • @luundalite7962
    @luundalite7962 4 роки тому

    Watching in 2021 but no future guy from 2020 though. Great content. Amazingly intuitive.

  • @sleepy-dev14
    @sleepy-dev14 2 роки тому

    How come the OR (||) operator doesn't work like stated in 8:03 but when using the "in" operator like where("someProp", "in", ["value1", "value2"]) works in firestore?

  • @thedevguild7525
    @thedevguild7525 2 роки тому

    Hi Todd, may i ask how is the index/ document id created/name? 5:44
    Please correct me if i am wrong, I believe that how indexing work is create individual tables for each field name e.g. address - 1 table and crusine - 1 table. 9:48
    Within each table is the value and its location

  • @tomascarignano5002
    @tomascarignano5002 3 роки тому

    Superb documentation Firebase team!

  • @Elyx0
    @Elyx0 5 років тому +7

    Subtitles are messed up from the 2019 update!

  • @andyfusniak
    @andyfusniak 6 років тому +1

    Great video. As querying a collection automatically generates an index, this raises a whole bunch of questions... How can we see what indexes are in use? Does a one-off query cause an index to be built and maintained for the lifetime of a collection? What is the storage cost penalty for each index? Can we remove an index? Does having more indexes slow down document write speed, or are indexes eventually consistent?

    • @Frank_van_Puffelen
      @Frank_van_Puffelen 6 років тому +2

      Wow, lots of great questions. I'll try to answer what I can quickly: 1) there is no way to see what indexes are used. But while it would be interesting to see the query plan, you can't affect it. No matter how you write the query, the indexes used will be the same. 2) If you don't need a composite index anymore, you can delete it from the console. 3) there is no charge for index storage. 4) yes, you can remove any composite index from the console 5) I haven't gathered any such performance metrics for this yet. I you get to them, I'd love to see the results.

  • @IljaDidDevs2
    @IljaDidDevs2 6 років тому +16

    Would be awesome to have similar video done for security rules :)

  • @NoamGaash
    @NoamGaash 6 років тому +1

    #askFirebase
    on 9:30 - "select all restaurants where zip=94045 and ang_rating > 4.6"
    why can't you binary search each index document id from the right side in the left side?

    • @NoamGaash
      @NoamGaash 6 років тому +1

      complexity would be O(r_rating * log(r_zip)), and since you considered log as a constant it would still be O(r)

  • @NicoloZanetti
    @NicoloZanetti 5 років тому +3

    I can't say that I fully understood the difference between an equality and inequality search, I got an idea, but I wouldn't be sure about what I would code.
    If I start from the Restaurant in S. Francisco (iii), and then I Zig to the Japanese one with the same id (iii), and then the next Japanese one (ttt) which sends me back to the ones in S. Francisco (ttt), how can I be sure that I haven't skipped some in the S. Francisco list between iii and ttt? This would assume that the Japanese restaurants are also sorted by City, but with other fields and possibly changes happening is this really always true and reliable?
    Did I just describe that it could be an "inequality" search where there's no certain relationship between the order of the two fields?

  • @joshuaoba2526
    @joshuaoba2526 4 роки тому

    At 2:50 , when you say “ 200 of this things “ do you mean 200 Collection group queries or 200 Documents to search through per Collection group query or 200 results per Collection group query

  • @OfferoC
    @OfferoC 6 років тому

    Awesome. Please continue to go in depth on fire store.

  • @activewire-play7109
    @activewire-play7109 6 років тому

    Just a question, the composite index is a string and we are checking for a number comparison. is that a right example?

  • @DavidNitzscheBell
    @DavidNitzscheBell 3 роки тому +2

    In Kotlin, how can I save a document that contains an enum and then read it back? I'm able to save, but reading it back crashes the app.

  • @BobJames-l1y
    @BobJames-l1y Рік тому

    Great walk through, however, my dashboard brings up Datastore (not Firestore) where I can add "entities"; I want to use Firestore and create collections and docs. I have clicked on every dev and admin option and still end up in the same place. What went wrong??

  • @BaRzOmk
    @BaRzOmk 6 років тому +5

    Please more videos and Please explain more slower, feels like we are running from firestorm :)) And love all firebase videos... Thanks again...

    • @MrRantelo
      @MrRantelo 6 років тому

      We can no longer watch in 2x speed :(

  • @nikhilenmudi2490
    @nikhilenmudi2490 6 років тому +1

    Love you analogies and explanation style!

  • @abc-yg6tk
    @abc-yg6tk 6 років тому

    Excellent video. Entertaining, good pacing, explains the algorithms and the why and how. Learnt a lot in 15mins

  • @marriagebureaufreematrimon5751
    @marriagebureaufreematrimon5751 6 років тому

    really good information thank you

  • @vinfragwarrior
    @vinfragwarrior 4 роки тому +3

    "the time it takes to run a query is proportional to the number of results, NOT the number of documents you're searching through"
    MY LIFE IS A LIE. This goes against everything I thought I knew hahaha

  • @eliteeth4n
    @eliteeth4n 6 років тому +20

    More "Into the weeds" videos!

  • @musicandoutdoors
    @musicandoutdoors 6 років тому

    Agreed with the comments, this video taught me to fish instead of giving me a fish. I understand much better now

  • @cutiko
    @cutiko 6 років тому

    The indexing link works like a charm.. except while using multiple accounts. Yes, it is an edge case and would dismiss it normally but I start to get tangled with this because in my new gig they made a mail account for me, which I have to use for the project. So when copy/paste the link, it doesn't work because is by default grab my main account. I'm doing a work around on this by pasting the link on an incognito tab or opening it in another browser.

  • @DiegoJaraPalomino
    @DiegoJaraPalomino 6 років тому +1

    This is great! Can't wait for the pagination video

  • @azka9075
    @azka9075 4 роки тому

    what do you mean when you said we are limited to 200 of these things during the collection group query limitations part, do you mean we can only create 200 collection groups at most?

  • @cyber3nai1
    @cyber3nai1 5 років тому +1

    There is a problem with subtitles from 2:02 :(

  • @davisyeung937
    @davisyeung937 4 роки тому

    Awesome video! It will be great if there is a detailed video explaining the suggested way of doing "full text searching" in firestore.

  • @shelled7321
    @shelled7321 5 років тому

    On my website, it opens with all the items in the database being show. So would it be best to query the data base for the data the user wants and then re-import what that are filtering for, or to import the whole database when the website loads then filter it on a button click using javascript? Sorry if this is a dumb question, I'm new to web development and the whole thing is extremely confusing. Also, I'm using react and redux with firestore. Is this going to be efficient enough to build a website, or should I be using a different stack?

  • @scottieschneider1925
    @scottieschneider1925 5 років тому +1

    Thank you so much for this! Really great information.

  • @candyman3537
    @candyman3537 4 роки тому

    You mentioned the max size of a document is 1mb. Does it include sub collection?

  • @101nka
    @101nka 5 років тому +1

    These videos are so entertaining

  • @blablablabla29382
    @blablablabla29382 Рік тому

    How order by a field which potentially not exist in firestore ? (Can we put a default value in this situation ?)

  • @PrashanthHN
    @PrashanthHN 6 років тому

    Nice! had been wondering about query efficiencies since a week and this explains it well!

  • @PlayerHeader
    @PlayerHeader 5 років тому

    9:30 - I don't understand why this ain't working but the example with San Franciso and Japanese is working at 8:40

  • @yeeen123
    @yeeen123 6 років тому

    Is the collection grp query feature alr in?

  • @PlayerHeader
    @PlayerHeader 5 років тому

    Ahh now I understand it 10:45.
    If we have this indexes for zip code, which is a string, then firebase puts in to the index table all zip codes side by side (groups them) and orders them by their doc_id, so that aaa is the first and xxx the last.
    But if we have some stuff like the avg_rating, and do > or

  • @MoraraFrank
    @MoraraFrank 8 місяців тому

    How about querying a single document. How does that work when separating between document snapshot Id and document id, it fails to find document because the passed id is document Id while it finds document snapshot id.

  • @pasta0328
    @pasta0328 6 років тому +2

    You are an excellent teacher

  • @zensic
    @zensic 2 роки тому

    Thank you! Very helpful!

  • @noamgonen6243
    @noamgonen6243 6 років тому

    love your technical jargon. Googling Giant Pain in the .... right now

  • @irfcconsultoriaeservicoslt2969
    @irfcconsultoriaeservicoslt2969 3 роки тому

    Does firebase indexes maps in array of maps?

  • @codewithtae6637
    @codewithtae6637 Рік тому

    According to the docs, you can do "OR" queries. At the time of this writing, the "OR" query is in "preview".

  • @hybridboy9_9
    @hybridboy9_9 Рік тому

    In my app, user can search by name, order by stock or price (asc/desc), filter by category, brand, color, size... timestamp
    in such case do i have to create 64 (subset of 6) composite indexing? for all the scenarios, where search can be include or not filter can be done or not, timestamp sorting will always be there other sorting can be done or not?
    its getting very frustrating to achieve this, better to use some other database.

  • @zapxcero
    @zapxcero Рік тому +2

    so is this series outdated?

  • @riderpaul
    @riderpaul 5 років тому

    I read that Firebase stores its offline data in SQLite. Is it possible to do a full text search against this local data or do I need to sync it to a secondary SQLite file to query against? Or is there a better way? The data set is about 100K varchar 100 in size and I need to be able to search "%STR1%" AND "%STR2%" #AskFirebase.

  • @russellmorland7382
    @russellmorland7382 4 роки тому

    Is there a way to request the document with the highest value, given a collection?

  • @raghav4296
    @raghav4296 6 років тому

    Wow, Indeed a great video!! Since there is no full text search supported as mentioned 6:30 isn't it a common use case for most apps, as in this case, the user may not type the restaurant name correctly all the time.Any simpler way of doing this other than hooking up a elastic search/Algolia?

  • @rubencg195
    @rubencg195 5 років тому +2

    When are the OR, IN, CONTAINS and other similar conditions going to be available? It really limits the usability of the platform.

    • @paulmacfarlane6089
      @paulmacfarlane6089 4 роки тому

      A little bit late on this, but an "or" condition can now be accomplished using the "in" query operator, and specifying the potential alternatives in an array (although right now they limit it to 10 possibilities). From the docs:
      citiesRef.where('country', 'in', ['USA', 'Japan']);
      you can also use array-contains-any
      citiesRef.where('regions', 'array-contains-any',
      ['west_coast', 'east_coast']);

  • @tranquillityEnthusiast
    @tranquillityEnthusiast 6 років тому +2

    How can we order the document by time

  • @PlayerHeader
    @PlayerHeader 5 років тому

    10:42 why it isn't possible to intersect these two?

  • @rammalvarez2664
    @rammalvarez2664 6 років тому

    Very nice video! Thank you guys!

  • @rasulbc
    @rasulbc 3 роки тому +1

    thanks for telegram notification sound on 0:16

  • @sasimarian142
    @sasimarian142 6 років тому

    Is there any number of composite indexes limitation?

  • @elzawawy
    @elzawawy 5 років тому

    The transcript timing is messed up on this one after the TIME TRAVEL incident. Would appreciate if it is fixed.

  • @1002CK
    @1002CK 6 років тому +1

    Actually last three minute help a lottt

  • @UsmanAli-ox3mn
    @UsmanAli-ox3mn 2 роки тому

    Overloaded.... I have to watch this multiple times.... still good video

  • @bebe.x.o
    @bebe.x.o 3 роки тому

    So what is the solution for implementing foreign key as in SQL ?

  • @KamelJabber1
    @KamelJabber1 5 років тому

    LOVE THE UPDATE! thanks so much for that

  • @jasonsebring3983
    @jasonsebring3983 6 років тому

    i keep wondering when this will have full text search and geo search otherwise you can scale with mongo and elastic and they work better but ive found also needings joins with mysql so you need many dbs for the task at hand and this aint it yet

  • @aishahale5504
    @aishahale5504 4 роки тому

    Does anyone know if these querying algos and creating index for each field (even mapings) exists in mongodb? Or how different is cloud firestore from mongodb?

  • @RoBuceo
    @RoBuceo 5 років тому

    A collection query order by name for example, gives me something like the following: "A", "B", "C", "a"... which collation does it use? Can we make any change to get "A","a","B", "C"?

  • @AlexPaluzzi
    @AlexPaluzzi 6 років тому

    Please more videos like this. More code too. Would love to see some stuff from scratch.

  • @romualdbarbe1070
    @romualdbarbe1070 6 років тому

    Thanks a lot
    I'm waiting for the episode about searching in text :)
    Apparently we can do it with algolia, is there a way to perform a search with synonims ?

  • @llogo
    @llogo 5 років тому +2

    Hi, Is this video still relevant or is it out of date as suggested it would be early in the video?

  • @aungkhant502
    @aungkhant502 3 роки тому +1

    Update: != query on a single field is now supported since Sept 2020.

  • @helix-b9p
    @helix-b9p 4 роки тому

    so exciting thanks

  • @anjikyuzan
    @anjikyuzan 5 місяців тому +1

    I don't know if Calico's venture is doing well but it seems that Google resurrected Robin Williams!

  • @josefsantamaria
    @josefsantamaria 6 років тому

    In your older videos you made an example of how to structure events with attendees etc it would be very helpful if you could make one of those with Firestore!

  • @walkerrabelo
    @walkerrabelo 5 років тому

    Pleeeaaassee ! Update the subtitles ! Vivek is right ! After the time traveller made an entry the subtitles got out of sync ! :(

  • @TheTiagoslater
    @TheTiagoslater 4 роки тому

    excellent video

  • @TheRanguna
    @TheRanguna 4 роки тому

    Kinda sucks that I can't create index through some kind of call through firestore API. Then I could version control stuff and everything would be a little bit more organized and not scattered all over the place.

    • @Frank_van_Puffelen
      @Frank_van_Puffelen 4 роки тому

      You can deploy your indexes with the Firebase command line interface. See for an example of this: codelabs.developers.google.com/codelabs/firestore-web/#9

    • @TheRanguna
      @TheRanguna 4 роки тому

      @@Frank_van_Puffelen ah nice, thank you!

  • @jazelleanncapuli8346
    @jazelleanncapuli8346 6 років тому +1

    how can you query timestamp? or date?
    any help appreciated.