Flutter Tutorial - Hive NoSQL Database In 16 Minutes & Hive CRUD | Android, iOS & Web
HTML-код
- Опубликовано: 13 июн 2024
- Persist data with Flutter's Hive NoSQL Database locally on Android, iOS & Web by performing Hive CRUD Operations Create, Read, Update and Delete.
Click here to Subscribe to Johannes Milke: ruclips.net/user/JohannesMilke...
👉 12 Week Flutter Training | heyflutter.com
👉 Flutter Masterclass Courses | heyflutter.com/masterclass
Source Code | github.com/JohannesMilke/hive...
My Courses | heyflutter.com
Follow Newsletter | johannesmilke.com/newsletter
SUBSCRIBE HERE
bit.ly/JohannesMilke
SUPPORT & SPONSOR ME
github.com/sponsors/JohannesM...
RESOURCES
Sqflite & Sqlite Database Tutorial: • Flutter Tutorial - SQL...
Shared Preferences Load & Store Data Tutorial: • Flutter Tutorial - Sha...
Shared Preferences II Persist JSON Data Tutorial: • Flutter Tutorial - Log...
Firebase CRUD Tutorial: • Flutter Tutorial - Tod...
Secure Storage Tutorial: • Flutter Tutorial - Sec...
Search App Bar & Search Delegate Tutorial: • Flutter Tutorial - Sea...
Crop & Save Images Tutorial: • Flutter Tutorial - Ima...
Store Image Tutorial: • Flutter Tutorial - Flu...
Selectable DataTable Tutorial: • Flutter Tutorial - Sel...
Deploy Flutter Web App Tutorial: • Flutter Tutorial - Fir...
Create Invoice PDF Document Tutorial: • Flutter Tutorial - Cre...
Google SignIn Tutorial: • Flutter Tutorial - Goo...
Email Sign In Tutorial: • Flutter Tutorial - Ema...
App Internationalization Tutorial: • Flutter Tutorial - Loc...
Migrate App To Null Safety Tutorial: • Flutter Tutorial - Mig...
Null Safety In 5 Minutes Tutorial: • Flutter Tutorial - Nul...
Autofill Services Tutorial: • Flutter Tutorial - Aut...
TIMELINE
0:00 Introduction Hive NoSQL Database
1:13 Setup Hive
1:59 Create Hive Model
4:23 Generate Hive Model Adapter
4:58 Register Hive Model Adapter
5:24 Hive Boxes
6:04 Hive Open Box
6:37 Hive Close All Boxes
7:08 Hive Close Single Box
7:31 Hive Create - Box Add & Box Put
9:32 Hive Read By UI - Display Box Values In UI
11:06 Steps to add Hive Model
11:42 Supported Box Types VS Own Model Classes
12:06 Hive Read - Box Get
12:35 Hive Read All - Box Get All
12:44 Hive Update - Box Put VS Save
14:11 Hive Delete - Box Delete VS Delete
14:53 Hive Encrypted Boxes
15:04 Hive Limitations
15:21 Important: Hive Model Changes
SHARE | SUBSCRIBE | LIKE FOR MORE VIDEOS LIKE THIS
*********
SOCIAL MEDIA: Follow Us :-)
Twitter | / heyflutter_
Linkedin | / heyflutter
LEARN MORE
SOURCE CODE | github.com/JohannesMilke
ARTICLES | / johannesmilke
PLAYLISTS
All Flutter Videos | • Flutter Tutorial - Flu...
Widgets - Flutter | • Flutter Tutorial - Flu...
Plugins - Flutter | • Flutter Tutorial - Flu...
Animations - Flutter | • Flutter Tutorial - Tra...
Designs - Flutter | • Flutter Tutorial - Flu...
Firebase - Flutter | • Flutter Tutorial - Pag...
State Management - Flutter | • Flutter Tutorial - Riv...
CREDITS
Copyright song "Corporate Technology" by scottholmesmusic.com
#Flutter #Tutorial #JohannesMilke
LIKE & SHARE & ACTIVATE THE BELL
Thanks For Watching :-)
bit.ly/JohannesMilke - Наука
👉Join 12 Week Flutter Training: heyflutter.com
👉Join the WhatsApp Channel to get the latest news about Flutter & HeyFlutter: whatsapp.com/channel/0029VaDNCZtC1Fu8nL2vmw3f
Source Code: github.com/JohannesMilke/hive_database_example
Sqflite & Sqlite Database Tutorial: ruclips.net/video/UpKrhZ0Hppk/видео.html
Shared Preferences Load & Store Data Tutorial: ruclips.net/video/szOllHT1S7Y/видео.html
Shared Preferences II Persist JSON Data Tutorial: ruclips.net/video/-32HIsRf26o/видео.html
Firebase CRUD Tutorial: ruclips.net/video/EV2DyrKOqrY/видео.html
Secure Storage Tutorial: ruclips.net/video/Oqhrxk_f1RE/видео.html
Search App Bar & Search Delegate Tutorial: ruclips.net/video/RaACAwvZ61E/видео.html
Crop & Save Images Tutorial: ruclips.net/video/pXbBTJt7frM/видео.html
Store Image Tutorial: ruclips.net/video/JDDoN2THwug/видео.html
Selectable DataTable Tutorial: ruclips.net/video/HZD-0zgpuak/видео.html
Deploy Flutter Web App Tutorial: ruclips.net/video/xJo7Mqse960/видео.html
Create Invoice PDF Document Tutorial: ruclips.net/video/z_5xkhEkc5Y/видео.html
Google SignIn Tutorial: ruclips.net/video/ogW83xGQGTg/видео.html
Email Sign In Tutorial: ruclips.net/video/rnHAInnjCmM/видео.html
App Internationalization Tutorial: ruclips.net/video/Zw4KoorVxgg/видео.html
Migrate App To Null Safety Tutorial: ruclips.net/video/GLnQphHi1BY/видео.html
Null Safety In 5 Minutes Tutorial: ruclips.net/video/Q_WloMNKOkU/видео.html
Autofill Services Tutorial: ruclips.net/video/v8T4fnrQCf0/видео.html
The way you broke down the tutorial into steps and sub-steps is absolutely fantastic and easy to follow along. Thanks for this tutorial.
The clearest step by step tutorial on the internet. Thank you so much for this video!
Thanks, Johannes for giving us a guide to this system that we can follow logically and, most importantly, trust.
Love your tutorials where I must pause/rewind instead of play at double speed :)
Thanks!
Glad you liked, True Forensics! 🙂
Thank you for sharing your knowledge! Clear as crystal.
LOve the clarity you bring. Thanks
Amazing Tutorial thank you so much 👍, I understood most of the things after watching this tutorial, I'll get a better idea once I do it practically.
You are amazing. Thank you for yet another amazing video tutorial. Well done.
Nice tutorial man, awesome video and explanation. Keep it up your hard work. Greetings from Colombia.
This is Amazing, thank you so much.
Very helpful,thank you so much man.
Very useful and informative videos 🔥, thanku for all these videos ❤️
Thank you so much. It's very useful
you are the best man its so on point i loved it bro please keep at it
Nice tutorial, liked and subscribed!
Keep it up bro.
Your work is awesome.
you are best in the world 😍😍😍 thank you very much for the tutorial
After watching lots of video about hive I can say that this is one of the best and thank you Johannes.
Only thing that you can add is how to use asset hive database which is quite rare scenario.
Hi Johannes , thank you for letting us see the source code I cant believe that I downloaded it !!!
Very Nice Thank you very Much
Thanks Johannes for a great tutorial.
You are welcome, Raunak Singh 😊
Thank you very much it helped me a lot
great way of explaining concept. I have question, can hive be used with dio+retofit as offline-first?
This is what i need, you are so cool
Really great work and I have personally been using your videos and I hope you continue posting :)..
Glad to hear that, Thank you nahrawene ben hmida! 😊
fantastic bro very well and in easy way explained, thanks
Glad to hear that, Thank you Lagal Peshawa 😊
Informative and well explained
Thank you. I fixed my app thanks to you :)
You’re most welcome, Burak Deniz! 🙂
Thanks for this video
You are amazing. Thank you for yet another amazing video tutorial. Well done.
can you make another tutorial about ObjectBox ?
thanks
Big thank to you! series of you very wonderful! :D i have subscribed channel
Glad to hear that, Thank you Tung Nguyen! 😊
Thank you!!
Thank you bro
You are welcome, @denkmedia6892 😊
You're a Messiah..!!
Hi thanks for the tutorial. Can you provide more tutorial for Flutter Hive.
Hello dears. I cloned this app to my PC and I add some data to it. When I close and restart it, no data is shown. Is it normal. Couldn't I use Hive as a normal database for flutter web app?
amazing explanations and nice tutorial . can you please make a video about spring boot and flutter web crud with sql and thanks
Excellent guide! You're an MVP! Thanks a lot!
super convenient
So how can i open .hive DB on windows to check data on it.
amazing
This was an awesome video, can I request a video of how to login and sign up users using Hive and flutter.
Hi Johannes, awesome work! Thank you for your great content! I'm on a project right now and looking for a possibility to add data to only one field of a Box with seven fields. Is that Possible? Hive is really great to use but this is something I stuck with... Is there any solution for it? I'm really looking forward to your answer. Greetings from Germany :)
Thank you, Artur Troizki! 🙂 you can also make use of sqflite checkout this video : ruclips.net/video/UpKrhZ0Hppk/видео.html
I have a video request. Can you make a crud application that stores data in the local database if there is no internet , when we have internet connection the same data is transferred to the online database in the background.
hi johannes at the end you said that for more complex database operations sqlfite is best over hive can you please explain me how ,please elaborate ,please give a scenario
Thank You Supriya Vani! Follow this link: blog.codemagic.io/choosing-the-right-database-for-your-flutter-app/
I hope you will get your answer 🙂
Hi) Thanks for video! What about Moor SqLite library tutorial?)
WOW this is just what I'm looking for! Thank you! I have one question though, Does it do same with SharedPreferences?
@@HeyFlutter wow awesome! you really are an expert on flutter! Continue sharing brother.!
@@HeyFlutter You're really awesome! Thanks!
Shared preferences cannot store DateTime, also.
Thanks, Frankee! 🙂 Yes, it is similar, however, using Hive is more convenient, especially if you use the save and delete methods such as pointed out at 13:15 and 14:17. Hive also supports encryption and easy ways to display the data asynchronously in your UI. Learn more about it here: docs.hivedb.dev/#/../best-practices/when_to_use_hive?id=when-to-use-hive
@@HeyFlutter Thank you! You're awesome!!
I am always your video follower everyday I want to ask something about this
When user register some data on the text field and add the amount then finally display on the list
My question is that when user enter the again new data on textfield then previous one data already store on that textbox
Is there any solution to remove that previous data store on while user enter second data item
I have use dispose also not working yet
Great tutorial. Using Hive, is there a way to ship your app with a prepopulated database?
Thank You Jay Klaus! Follow this link: pub.dev/packages/hive. I hope you will get your answer 🙂
If I just have a fromJson and toJson in my models, that coverts my class to a Map, can I just store and retrieve these Maps without modify my class adding annotations and using build runner? I have classes with a lots of attributes.
@@HeyFlutter Can I just convert my classes to Map to store and retrieve data from hive, without need to use those annotations and build runner? Isnt it more easy?
Hello Johannes, great tutorial helped me a lot!One Question: Is hive able to handle millions of Objects, is there a limit? Thank you!
Thank You Sampelmind81! Follow this link: stackoverflow.com/questions/64020930/can-hive-in-flutter-store-bigdatasome-gb-files
I hope you will get your answer 🙂
As always your video is awesome. But I have one query that Is there any way to make relation between tables in hive?
Hey, Mohammad Ali 🙂 it's No Sql database so relation thing is not possible
3:38 Hi Bro, did you told about item "id" ? We are not need show use ID how in sqfli ? -- for example { id , name, createDate, isExpense , ....}
@@HeyFlutter sorry... its my english.
by
We have to use hive or objectbox for data storage. If we use hive instead of object box then there will be issue or not?
Thank you, @resha4653! 🙂. There will be no issue.
What if I decided to remove the parameter and the example:
remove HiveField(1) ? then change it to a different parameter, but with same HiveField(1)...?
Thank You Keith Bacalso! Follow this link: medium.flutterdevs.com/hive-database-with-typeadapter-in-flutter-7390d0e515fa
I hope you will get your answer 🙂
Hi Johannes, thanks for the tutorial.
When I run "flutter packages pub run build_runner build" I get that it succeeded with 0 outputs. I tried "flutter pub run build_runner watch --delete-conflicting-outputs" after I read a post with the same problem in StackOverFlow but still the file won't be generated. What do you recommend to do?
Hello, Nawaf! Follow this link: stackoverflow.com/questions/59668548/why-doesnt-build-runner-generate-files-when-serializing-json-in-dart-flutter
I hope it will solve your problem. Thank You 🙂
How can we add a list in the model class in hive? Do we have to register an adapter for the myobject class as well as for the model class? Is the way of registering adapter for myobject similiar to that of model class?
@@HeyFlutter Hey there! I gave it a shot just a few minutes back by creating a new adapter for the myobject and registering it, and it worked!
Thank You Anugrah Kora! Follow this link: stackoverflow.com/questions/59413228/how-to-save-a-listobject-and-retrieve-using-hive
I hope you will get your answer 🙂
3:35 how do you paste it like that with increase the number ?!
@Johannes Milke how do you paste your code very fast in this way
example(1) -> example(2) -> example(3) -> example(4) -> example(5) -> example(6)
just go in this time 3:35 and you will understand me.
we don't need to ask permission for storage to use hive it is reading and writing data in to the storage ?
Thank You s vijay kumar! Follow this link: medium.com/flutter-community/storing-local-data-with-hive-and-provider-in-flutter-a49b6bdea75a
I hope you will get your answer 🙂
Great tutorial Johannes but this is the error I am getting in the code "LateInitializationError: Field 'amount' has not been initialized."
Thanks, Victor! 🙂 Learn more about Flutter 2 Null Safety & Late Intialization here: ruclips.net/video/Q_WloMNKOkU/видео.html
Hey, this is great, thanks! Now, can anyone comment why store data locally if you can use the cloud?
Good question, Helvecio Borges! 🙂
There are multiple scenarios
- In case internet is not connected and still you wanna show some data
- Loading from local is way faster then loading from cloud so in case there is some repetition of loading data you can store it locally
- In case you just want to make a application with no need of cloud other than storing data. You can use local DB
- and many more
Hi Johannes! I didn't understand what we did in initState(), can you please explain it?
Thank You Nihal! Follow this link: api.flutter.dev/flutter/widgets/State/initState.html
I hope you will get your answer 🙂
thanks for this great tutorial , but i have a question how can i fill the box with default data that i can update in the future ?
Thank You theycallmephenomenal! Follow this link: medium.com/flutter-community/storing-local-data-with-hive-and-provider-in-flutter-a49b6bdea75a
I hope you will get your answer 🙂
@@HeyFlutter ♥♥
i did these steps but i have a problem saying:
Bad state: No definition of type List
[SEVERE] Failed after 501ms
pub finished with exit code 1
what Should i do?
Hello, Samar abdulaziz! Follow this link: github.com/flutter/flutter/issues/47040, I hope it will solve your problem. Thank You 🙂
Hello Johannes, I followed your tutorial but I got the error " Box not found. Did you forget to call Hive.openBox()?." I have already open box in main.dart file is the same as yours. Please give me any hints why this happened.
Thank You Dipali Thakare! Follow this link: stackoverflow.com/questions/59436867/box-not-found-did-you-forget-to-call-hive-openbox
I hope you will get your answer 🙂
hi, how I can implement where clause or pagination with hive?
thank you.
Thank You أبو رؤيم عبدالله بوسدراية! Follow this link: pub.dev/packages/hive
I hope you will get your answer 🙂
Hey my question is do I need to ask for permission from user something like internal storage permission etc, or I can simply use it without permission as it is and in what file format it stores your data and where 🙄🙄 please help me out
@@HeyFlutter does this package will do those things automatically?? Or I need to write some code btw thanku so much ❤️❤️❤️❤️ you're doing fabulous work and also helping beginners like me 👍
Thank you, old men! 🙂
Well you are write we have to provide storage permissions. Hive makes use of storage path to store data in a particular directory. You need not to provide permissions explicitly you can make use of this package : pub.dev/packages/path_provider to access storage path as well as requesting permission
Was so glad to find this video, but with null safety you cant call addTransaction Future function from the button. Anyone an idea how it could work?
Thanks for letting us know, 90Dandelion! 🙂 We'll try to post update video on this topic with null safety
@@HeyFlutter thanks :) it would also be interesting to see how CRUD operations in Hive work if we want to store data from Firestore locally
When I restart the closed app, I get the "LateInitializationError: Field 'amount' has not been initialized' error. I've looked at the links as noted in the comments below, but I don't see where the error is occurring or how to fix it.
Anyone been able to resolved/fix this error?? If so, how.
did you find the solution ?
Can I save list of map as a value? Do I need to do anything extra
Thank you, Smita Jangle! 🙂
yes sure why not, check out this solution : stackoverflow.com/a/48117264
Hey Milke, is it possible to use Hive with out the adapters ?
Is there any specific reason why adapters are needed?
Thank You Samuel Onyedikachukwu Akujor! Follow this link: medium.com/flutter-community/storing-local-data-with-hive-and-provider-in-flutter-a49b6bdea75a
I hope you will get your answer 🙂
Yup !
I ran into a problem and now I think I see why we need the Type Adapters ...
Correct me if I'm wrong, but that's to help us save different Model types directly?
Have you ever worked with hive and nested data?
I'm doing a project where I was trying to do nesting and lists. For my project I'm initially creating content to a box similar to you but I also have a list eg:
String name
List items
The items are empty in the beginning when creating the entry to the box and I'm planning on populate the item list in your "edit" section, eg entering the item number and quantity followed by "save" which is supposed to save the data to the list for the entry in the box. Adding more entries on the "edit" page will add-on to the list of items.
I then want to see the list of items in a scrollable list on the "edit" section for that entry but I can't seem to make it work. For starters I can't seem to populate the list and it seems very hard making the List items listenable in an ValueListenableBuilder.
Have you ever worked like this before? Any Ideas?
@@HeyFlutter thank you, I’ll look into it.
Thank You Jim Sundqvist! Follow this link: medium.com/nonstopio/best-local-database-for-flutter-hive-part-3-3a87fac526a5
I hope you will get your answer 🙂
Unhandled Exception: RangeError: Not enough bytes available.
Could you solve this problems ? I dont find the solution help
Thank You Nyein Chan! Follow this link: github.com/hivedb/hive/issues/424
I hope you will get your answer 🙂
Where are we defining the box name ?
Does anyone know how to show only part of the values contained in the box based on a word search?
Thank You @andreasacca7971! Follow this link: stackoverflow.com/questions/64272936/how-to-filter-hive-data-in-flutter-by-data-values
I hope you will get your answer 🙂
Hi johanness , I've got this error : LateInitializationError: Field 'amount' has not been initialized. how can I solve it ? i havent add anything to your code ...it was fine yesterday but today ive tried to connect the project from vs code to the emualtor i got this error ... i would really appreciate your help on that .
Hello, delaram majestic! Follow this link: stackoverflow.com/questions/67040839/flutter-lateinitializationerror-field-name-has-not-been-initialized, I hope it will solve your problem. Thank You 🙂
why we need do this complex thing?i just operating data directly by without model,it looks working fine!
I got lost. How did you get the required key to update value in DB?
Thank You Supernova! Follow this link: itnext.io/flutter-save-data-to-local-storage-with-hive-nosql-database-package-8a0de834f313?gi=2729f591701
I hope you will get your answer 🙂
Subbed
Does it support windows? And can I back up my data and load it on another platform?
@@HeyFlutter I'm trying to use it, Thank you so much
Thanks, Amin Samad! 🙂 Yes it do support windows and you can take backup of your data and can be used on other platform
When i run flutter packages pub run build_runner build.
.g.dart isn't generating.
What should i do to fix this
i tried flutter clean | flutter pub get | flutter packages pub run build_runner build --delete-conflicting-outputs
nothing works
@@HeyFlutter Thanks for replying. Problem solved.
Hello, Hadi Khan! Follow this link: stackoverflow.com/questions/58360475/flutter-json-serialization-not-generating-g-dart-files, I hope it will solve your problem. Thank You 🙂
Would it be good to use hive DB with search delegate?
@@HeyFlutter thank you😊
Thank You Vidyasagar Gaikwad! Follow this link: viveky259259.medium.com/hive-for-flutter-1-when-why-database-cea0013c9fc1
I hope you will get your answer 🙂
The box "notebook" is already open and of type Box. Error I get
Thank You NISHANT SHARMA! Follow this link: stackoverflow.com/questions/71920274/how-to-fix-hive-box-already-open-error-in-flutter
I hope you will get your answer 🙂
Bro please SEMBAST too!
Cannot creat generate Image.g.dart file
I try 4/5 days but cannot solve this issues.
Solution plz?
@@HeyFlutter [WARNING] hive_generator:hive_generator on lib/DataModel/ImageModel.dart:
ImageModel.g.dart must be included as a part directive in the input library with:
part 'ImageModel.g.dart';
cannot solve .
Hello, Mhamudul Hasan Mridul! Follow these links: dart.dev/guides/language/effective-dart/style, I hope it will solve your problem. Thank You 🙂
Is hive good for making todo apps??
And it is offline also
@@HeyFlutter thanks for the reply... Plz tell me what i can do foe making categories... While user select in dropdown menu.. I appreciate your help
it's support images to store locally
Thank you, Vishnu R! 🙂
when i run build_runner build it succeed with 0 outputs please help
@@HeyFlutter thanks
Thank You World legends! Follow this link: github.com/google/json_serializable.dart/issues/543
I hope you will get your answer 🙂
mandatory insight 1:50 what is that?
So i have the question. ruclips.net/video/w8cZKm9s228/видео.html you have function type 'Future', but func returns nothing. My IDE starts to swear at me at theat moment. How do yo make it happen? If you write type of function you must return that type in function body. Isnt it?
Thanks, Собака Собака! 🙂 Learn more about it here: flutteragency.com/how-to-use-future-return-value-as-if-variable-in-flutter/
@@HeyFlutter ahah, thanks for answer, at that moment im junior developer at work. Not actual question.
Firebase set to hive how is it done
@@HeyFlutter thank you bro :)
Thank You Hakan Akgül! Follow this link: stackoverflow.com/questions/65168612/how-to-put-data-to-hivedb-after-fetching-it-from-the-firebase-and-access-data-f
I hope you will get your answer 🙂
thumbs up....thumbs up...
(y) (y)
my build runner command doesnt show any output
Thank You Arsh Ansari! Follow this link: stackoverflow.com/questions/58023664/flutter-pub-run-build-runner-build-failed
I hope you will get your answer 🙂
@@HeyFlutter ya got the error thanks
fantastic tutorial as usual, but in all honesty i feel this is sooo much coding for a DB that's neck to neck with Shared Preferences, Sure Hive has an advantage but still...
why late keyword is used here ?
Thank you, Pradeep Kumar Reddy Kondreddy! 🙂 when we are not initializing a variable then we usually use late keyword to avoid build time errors
The creator of hive is now making isar, much more promissing.
Still in alpha version though.
Thanks, jousis! 🙂 Yep, you are right, this is also interesting. Let's wait until it becomes more stable.
ok i created the ui ...
Great, Thank You Senpo
NOT WORKING man