fcode_bloc 0.4.7

  • Readme
  • Changelog
  • Example
  • Installing
  • 83

Fcode Labs Firebase Repository Architecture for BLoC #

This package is the Firebase Repository architecture which is used by Fcode Labs (PVT) LTD for Flutter mobile application development.

Recommend to use with BLoC pattern by @felangel. But can be used without implementing BLoC pattern.

For more information about Fcode Labs visit: fcodelabs.com.

Email us: hello@fcodelabs.com

[0.4.7] - Update dependencies to the latest version


  • Minor bug fixes


  • Update dependencies
  • Minor bug fixes and document updates


  • ByReference and ByReferences specifications were removed
  • Remove all listeners
  • Remove collection reference handler

If you want to listen to something, use provided stream. Old listeners are not available now.

[0.4.3] - Query for single values with Futures

[0.4.2] - Transactions and Batch Writes

[0.4.1] - Repository update function changes

Now you can update arrays or update only few fields in a documents

[0.4.0] - Remove all dependencies from flutter_bloc and bloc by @felangel

As all the previously mission features are already there in flutter_bloc, this package removes all the dependencies from it. For BLoC, use that package.

[0.3.8] - Remove close() from DB and UI Models

close() is there to dispose any db connections or streams when the model is not using. But models should not depend on anything in the code. So this was removed.

[0.3.7] - Update dependencies to the newest version

[0.3.6] - Update dependencies to the newest version

[0.3.5] - Implement remove function in Repository


  • Add assertions
  • Add Streams to Handlers
  • Add CollectionReference to Handler

[0.3.2] - Remove Firebase Auth

[0.3.1] - Put class to sep files

  • Put classes in BLoC into separate files
  • Make UIModel immutable

[0.3.0] - Use flutter_bloc and bloc by @felangel

[0.2.10] - Modify Docs


  • Modify Docs
  • Firebase Cloud Functions support added
  • Added Listeners to reference/s handlers
  • Model List Builder added


  • Bug Fixes
  • New way of handling listeners in BLoC
  • Model Builder works with listeners
  • Model Stream Builder added
  • Multi Model Builder added
  • Make Model Builder Stateful


  • Bug fixes
  • DB model can have custom IDs
  • Move everything to src
  • Action Listener is called before it's added to the hook
  • Update dependencies
  • Global BLoC collector


  • Bloc Listener has a new way of communicating with listeners
  • Bloc has raise errors
  • Bloc can manually call a state change
  • Performance improvements in BLoC

[0.2.4] - Text start with Specification added


  • By ID Specification added
  • Reference/References handler added


  • By Reference Specification added
  • Remove transformer

[0.2.1] - Replace hook with rx

[0.2.0] - Change package name


import 'package:flutter/material.dart';

void main() {

class ExampleApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(),

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  fcode_bloc: ^0.4.7

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:fcode_bloc/fcode_bloc.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Jan 19, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.0
  • pana: 0.13.4
  • Flutter: 1.12.13+hotfix.5

Health issues and suggestions

Document public APIs. (-0.70 points)

98 out of 99 API elements have no dartdoc comment.Providing good documentation for libraries, classes, functions, and other API elements improves code readability and helps developers find and use your API.

Maintenance suggestions

The description is too long. (-10 points)

Search engines display only the first part of the description. Try to keep the value of the description field in your package's pubspec.yaml file between 60 and 180 characters.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
cloud_firestore ^0.13.0+1 0.13.0+1
cloud_functions ^0.4.1+6 0.4.1+6
crypto ^2.1.3 2.1.4
device_info ^0.4.1+4 0.4.1+4
firebase_core ^0.4.3+1 0.4.3+2
flutter 0.0.0
intl ^0.16.0 0.16.1
rxdart ^0.23.1 0.23.1
Transitive dependencies
async 2.4.0
charcode 1.1.2
collection 1.14.11 1.14.12
convert 2.1.1
firebase 7.2.0
firebase_core_platform_interface 1.0.2
firebase_core_web 0.1.1+2
flutter_web_plugins 0.0.0
http 0.12.0+4
http_parser 3.1.3
js 0.6.1+1
matcher 0.12.6
meta 1.1.8
path 1.6.4
pedantic 1.9.0
quiver 2.1.2+1
sky_engine 0.0.99
source_span 1.6.0
stack_trace 1.9.3
string_scanner 1.0.5
term_glyph 1.1.0
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies