hyttahub_firebase 0.1.2 copy "hyttahub_firebase: ^0.1.2" to clipboard
hyttahub_firebase: ^0.1.2 copied to clipboard

Firebase implementations for hyttahub base functionality.

hyttahub_firebase #

Firebase core persistence implementations for the hyttahub package.

Features #

Provides Firebase-specific implementations for:

  • Authentication (FirebaseHyttaHubAuth)
  • Firestore (FirestoreHyttaHubStorage)

Usage #

To use this package, you must first initialize Firebase, and then register the Firebase persistence implementation with the hyttahub PersistenceRegistry before calling initializeHyttaHub().

Here is a simplified example of how you might set this up in your main.dart:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:hyttahub/hyttahub.dart';
import 'package:hyttahub/proto/hyttahub_implementation.pb.dart';
import 'package:hyttahub/utilities/persistence_registries.dart';

import 'package:hyttahub_firebase/firebase_hyttahub_auth.dart';
import 'package:hyttahub_firebase/firestore_hyttahub_storage.dart';

import 'firebase_options.dart'; // Generated by FlutterFire CLI

void registerPersistence() {
  PersistenceRegistry.registerImplementation(
    HyttaHubImplementationDescriptor(
      id: 'firebase',
      name: 'Firebase Cloud',
      type: StorageEnum.cloud,
      storageBuilder: () => FirestoreHyttaHubStorage(),
      authBuilder: () => FirebaseHyttaHubAuth(),
    ),
  );

  PersistenceRegistry.onInitializePlatform = (storage) async {
    // Only initialize Firebase if we are using cloud storage
    if (storage == StorageEnum.cloud) {
      if (Firebase.apps.isEmpty) {
        await Firebase.initializeApp(
          options: DefaultFirebaseOptions.currentPlatform,
        );
      }
    }
  };
}

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 1. Register the Firebase implementation
  registerPersistence();

  // 2. Initialize the platform (this will call the Firebase.initializeApp logic above)
  const storage = StorageEnum.cloud;
  await PersistenceRegistry.initializePlatform(storage);

  // 3. Initialize the core Hyttahub framework
  await initializeHyttaHub(
    implementation: HyttaHubImplementation(
      appBuildNumber: 1,
      cloudRootCollection: 'my_app',
      appId: 'com.example.myapp',
      storage: storage,
      implementationId: 'firebase',
    ),
    siteScreenRoute: (siteId) => SiteScreenRoute.fullPath(siteId),
  );

  runApp(const MyApp());
}
0
likes
140
points
24
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Firebase implementations for hyttahub base functionality.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

cloud_firestore, cloud_functions, firebase_auth, firebase_core, firebase_storage, flutter, http, hyttahub

More

Packages that depend on hyttahub_firebase