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

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

example/lib/main.dart

import 'dart:developer'; // For logging messages.

import 'package:cloud_firestore/cloud_firestore.dart'; // Firestore database interactions.
import 'package:firebase_facilitator/mixin/crud_repos.dart'; // Provides mixins for CRUD operations.
import 'package:firebase_facilitator/mixin/firestore_read_service.dart'; // Mixin for reading Firestore data.
import 'package:firebase_facilitator/mixin/firestore_write_service.dart'; // Mixin for writing Firestore data.
import 'package:firebase_facilitator/mixin/logger_service.dart'; // Mixin for logging services.

void main() {
  // Instantiate the repository and call Firestore operations
  final ReadWriteReposExample repos = ReadWriteReposExample();

  repos.fetchAllDocuments(); // Fetch all documents in the collection.
  repos.fetchDocumentById(docId: "id_example"); // Fetch document by ID.
  repos.deleteDocument(documentId: "id_example"); // Delete document by ID.
  repos.saveDocument(
      data: {"id": "id_example", "fullName": "John"}); // Add a document.
  repos.customOperations(); // Perform custom Firestore queries.
}

/// A class for handling Firestore CRUD operations using mixins from `firebase_facilitator`.
///
/// Combines Firestore read and write capabilities with optional logging for better tracking.
class ReadWriteReposExample
    with FirestoreReadRepository, FirestoreWriteRepository {
  /// Provides Firestore read operations.
  @override
  FirestoreReadService get firestoreReadService => FirestoreServiceImpl();

  /// Provides Firestore write operations.
  @override
  FirestoreWriteService get firestoreWriteService =>
      FirestoreWriteServiceImpl();

  /// Optional logging service.
  /// Set to `true` to enable logging, otherwise returns `null`.
  @override
  LoggerService? get loggerService => LoggerServiceImpl(true);

  /// Firestore collection name.
  @override
  String get collection => "collection_example";

  /// A custom Firestore query that fetches documents where "field" is not equal to "something".
  ///
  /// This method demonstrates that you can still use Firebase natively alongside the mixins provided by this repository.
  /// The query is performed directly using the native Firestore API.
  /// After fetching the documents, it logs the number of results found.
  Future<void> customOperations() async {
    final result = await FirebaseFirestore.instance
        .collection(collection)
        .where("field", isNotEqualTo: "something")
        .get();

    log("Found ${result.size} document(s) in the query.");
  }
}
2
likes
0
points
54
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