0 purchases
xmodels
XModel Documentation #
This is a flutter package that help developers to create and develop Mobile, web and desktop apps fast and affectively. By the help of XModel you just have to create class and you have to extend it to XModel class. It will then give you all the functions that you will need to develop your projects. It is specially developed to work with firebase.
Usage #
Connect your project with firebase as usual.
Initialize firebase App.
Now you are good to go.
To create user #
Firstly create class for user.
import 'package:xmodels/xuser.dart';
class Auth extends XUser {
@override
///You can specify the required fields in "fields" which will takes list of fields. And also make sure to pass id (autoIncrement)..
Xfields fields = [
DataType('id', fieldtype: Dtype.autoIncrement),
DataType('name'),
];
}
copied to clipboard
final auth = Auth();
final email = TextEditingController();
final pass = TextEditingController();
final name = TextEditingController();
void signup(){
auth.createUser(email: email.text,password: pass.text, fieldsExtention: {'name': name.text,})
///"fieldsExtention" is where you pass the extra fields that you declared in Auth class in fields.
}
copied to clipboard
Now it will automatically creates collections in firebase for users data and register user in authentication.
##Check if user is already logged in
StreamBuilder(
stream: XUser.authStateChanges,
builder: (context, snapshot) {
return snapshot.connectionState == ConnectionState.active
? snapshot.data != null
? const MyHomePage(title: 'Flutter App.')
: const Login()
: const Loader();
});
copied to clipboard
User login #
void login(){
auth.signIn(email: email.text, password: pass.text);
}
copied to clipboard
Get User Data #
final userData = await xCurrentuser();
copied to clipboard
To create new Models #
class Group extends XModel {
Group() : super('Group'); ///Here you have to pass model name in string. It will be your collection name in Firebase Firestore.
@override
Xfields fields = [
DataType('id', fieldtype: Dtype.autoIncrement),
DataType('name'),
];
///fields is where you specify requierd field for this model. And also make sure to pass id (autoIncrement).
}
copied to clipboard
To add data to Model #
final user = Group(); //create object of the class
void add(){
user.add({'name': 'Codectionary'})
// data must have all the fileds metioned in class fields. If you want to put null as the value of the field, you can simply pass null.
}
copied to clipboard
To delete data from Model #
final user = Group(); //create object of the class
void delete(){
user.delete('id', data[index].data['id']);
// field is the key and value is the value. it will compare and it will delete that data which meet the condition.
//you can check any of your keys and values.
}
copied to clipboard
To Update data of Model #
final user = Group(); //create object of the class
void update(){
user.update('id', data[index].data['id'], {'name': 'Flutter'});
// field is the key and value is the value. it will compare and it will update its data with given data.
//you can check any of your keys and values.
}
copied to clipboard
To Delete All data from Model #
final user = Group(); //create object of the class
void delete(){
user.deleteAll()
}
copied to clipboard
Get data from models #
final user = Group(); //create object of the class
void getData(){
user.get(key, value) /// here you have to pass key and value to compare. It will get you only one data which meets the codition.
}
copied to clipboard
Get data array from models #
final user = Group(); //create object of the class
void getData(){
user.filter() /// this will give you array of the data. you can also compare by passing key and value which are optional.
}
copied to clipboard
Get data Stream #
StreamBuilder builder = user.xStreambuilder((context, List<XDataModel>? data){
return Container();
}
//return you a steam builder.
copied to clipboard
Get automatic generated forms by model #
final user = Group(); //create object of the class
final key = GlobalKey<FormState>();
Form form = user.form(key);
/// youn can get easily form generated by model.
///and you can also get acess to data of the model by
Map data = user.formValue();
///Now you can easily pass data to add or update.
copied to clipboard
Get Form of existing data to update #
final user = Group(); //create object of the class
final key = GlobalKey<FormState>();
XDataModel? instance; /// this is the existing data.
Form form = user.form(key, instance);
/// youn can get easily form generated by model.
///and you can also get acess to data of the model by
Map data = user.formValue();
///Now you can easily pass data to add or update.
copied to clipboard
Admin Panel #
The package comes with pre-build admin panel. from it you can easily add, remove and modify Data.
import 'package:xmodels/admin/admin.dart';
Widget adminPanel = Admin(models: [Group()])
/// In models you have to pass the models class that you want to get in admin panel.
copied to clipboard
Features #
Cross plateform
Pre-Build Admin panel
Easy to use
🚀 About Me #
I'm a software developer.
Authors #
@DevelopAamir
@codectionary
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.