firewatch 0.1.1 copy "firewatch: ^0.1.1" to clipboard
firewatch: ^0.1.1 copied to clipboard

Lightweight Firestore repositories for Flutter: single-doc and collection repos that react to auth, stream updates, and support live-window pagination.

example/main.dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firewatch/firewatch.dart';
import 'package:flutter/foundation.dart';

class UserProfile implements JsonModel {
  @override
  final String id;
  final String displayName;

  UserProfile({required this.id, required this.displayName});

  factory UserProfile.fromJson(Map<String, dynamic> m) => UserProfile(
        id: m['id'] as String,
        displayName: m['displayName'] as String? ?? '',
      );

  @override
  Map<String, dynamic> toJson() => {'displayName': displayName};
}

void main() {
  final authUid = ValueNotifier<String?>(null);

  final docRepo = FirestoreDocRepository<UserProfile>(
    firestore: FirebaseFirestore.instance,
    fromJson: UserProfile.fromJson,
    docRefBuilder: (fs, uid) => fs.doc('users/$uid'),
    authUid: authUid,
    subscribe: true,
  );

  final colRepo = FirestoreCollectionRepository<UserProfile>(
    firestore: FirebaseFirestore.instance,
    fromJson: UserProfile.fromJson,
    colRefBuilder: (fs, uid) => fs.collection('users/$uid/friends'),
    authUid: authUid,
    subscribe: true,
    pageSize: 25,
  );

  // When a user signs in:
  authUid.value = 'abc123';
  // When they sign out:
  // authUid.value = null;

  // Writes:
  docRepo.write(UserProfile(id: 'abc123', displayName: 'Marty'));
  colRepo.add({'displayName': 'Alice'});
}
1
likes
0
points
39
downloads

Publisher

unverified uploader

Weekly Downloads

Lightweight Firestore repositories for Flutter: single-doc and collection repos that react to auth, stream updates, and support live-window pagination.

Repository (GitHub)
View/report issues

Topics

#firestore #repository #state-management #pagination #flutter

Documentation

Documentation

License

unknown (license)

Dependencies

cloud_firestore, command_it, flutter

More

Packages that depend on firewatch