firebase_facilitator 0.0.4 copy "firebase_facilitator: ^0.0.4" to clipboard
firebase_facilitator: ^0.0.4 copied to clipboard

A Firebase CRUD package simplifying Firestore operations with optional logging and error tracking, designed for scalable and maintainable Flutter apps.

firebase_facilitator #

pub package versionpub points

firebase_facilitator is a versatile package that streamlines CRUD operations with Firestore in Flutter applications. It provides mixins for handling common tasks like Create, Read, Update, and Delete, along with optional logging functionality.

Platform Support #

Android iOS Web macOS Windows Linux

Requirements #

  • Flutter >= 3.3.0
  • cloud_firestore: ^5.4.4
  • fake_cloud_firestore: ^3.0.3
  • firebase_auth: ^5.3.1 (optional, for authentication)
  • firebase_core: ^3.6.0
  • logger: ^2.4.0 (optional, for logging)

Usage #

To use the firebase_facilitator package, simply import the necessary mixins and integrate them into your data repository class for seamless Firestore operations.

import 'package:firebase_facilitator/mixin/crud_repos.dart';
import 'package:firebase_facilitator/mixin/firestore_read_service.dart';
import 'package:firebase_facilitator/mixin/firestore_write_service.dart';
import 'package:firebase_facilitator/mixin/logger_service.dart';

class ReadWriteReposExample
    with FirestoreReadRepository, FirestoreWriteRepository {
  @override
  FirestoreReadService get firestoreReadService => FirestoreServiceImpl();

  @override
  FirestoreWriteService get firestoreWriteService =>
      FirestoreWriteServiceImpl();

  @override
  LoggerService? get loggerService => LoggerServiceImpl(true); // Optional

  @override
  String get collection => "collection_example";
}
    

Example Widget #

This example demonstrates how to interact with Firestore using the ReadWriteReposExample repository for adding and fetching documents.

import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:uuid/uuid.dart';

class ReadWriteExamplePage extends StatefulWidget {
  const ReadWriteExamplePage({super.key});

  @override
  State<ReadWriteExamplePage> createState() => _ReadWriteExamplePageState();
}

class _ReadWriteExamplePageState extends State<ReadWriteExamplePage> {
  final ReadWriteReposExample readWriteReposExample = ReadWriteReposExample();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Firestore Operations Example")),
      body: Column(
        children: [
          MaterialButton(
            color: Colors.blue,
            onPressed: _onAddDataPressed,
            child: const Text('Add Data'),
          ),
          MaterialButton(
            color: Colors.green,
            onPressed: _onFetchAllDocumentsPressed,
            child: const Text('Fetch All Documents'),
          ),
        ],
      ),
    );
  }

  void _onAddDataPressed() {
    readWriteReposExample.saveDocument(data: {"id": const Uuid().v4(), "name": "john"});
  }

  void _onFetchAllDocumentsPressed() {
    readWriteReposExample.fetchAllDocuments();
  }
}
    

The ReadWriteReposExample class handles Firestore operations like adding, fetching, and deleting documents, allowing developers to focus on business logic while abstracting the complexity of Firestore.

2
likes
0
points
66
downloads

Publisher

unverified uploader

Weekly Downloads

A Firebase CRUD package simplifying Firestore operations with optional logging and error tracking, designed for scalable and maintainable Flutter apps.

Repository (GitHub)
View/report issues

Topics

#firebase #crud

License

unknown (license)

Dependencies

cloud_firestore, fake_cloud_firestore, firebase_auth, firebase_core, flutter, flutter_web_plugins, logger

More

Packages that depend on firebase_facilitator