Localstore
Between SQL or NoSQL, there's no one best database, there's the right database for your specific project. Localstore is a JSON file-based storage package (localstorage) provides a persistent repository for simple NoSQL database.
Localstore (NoSQL) | SQLite (SQL) | |
---|---|---|
Data format | File path (collection) | Table |
Data item | JSON Document (doc) | Record / Row |
Scalability | Horizontal | Limited vertical |
Organization | Schema-less | Fixed schema |
Demo Screenshot
UML diagram
Getting Started
- Calling
WidgetsFlutterBinding.ensureInitialized();
in main() before callingrunApp()
:
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
- Import
import 'package:localstore/localstore.dart';
import 'package:flutter/material.dart';
import 'package:localstore/localstore.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
- Creates an instance using the default
Localstore
final db = Localstore.instance;
or using anywhere in your project.
- Creates new item
// gets new id
final id = db.collection('todos').doc().id;
// save the item
db.collection('todos').doc(id).set({
'title': 'Todo title',
'done': false
});
- Gets item by id
final data = await db.collection('todos').doc(id).get();
- Delete item by id
db.collection('todos').doc(id).delete();
- Fetch the documents for the collection
final items = await db.collection('todos').get();
- Using stream
final stream = db.collection('todos').stream;
Features and bugs
Please file feature requests and bugs at the issue tracker.
Libraries
- localstore
- Localstore library