turbo_firestore_api 0.8.1 copy "turbo_firestore_api: ^0.8.1" to clipboard
turbo_firestore_api: ^0.8.1 copied to clipboard

A clean and efficient approach to dealing with data from Firestore.

example/lib/main.dart

import 'dart:math';

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:example/turbo_firestore_api/views/cloud_firestore_api/turbo_firestore_api_view.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:turbo_firestore_api/apis/turbo_firestore_api.dart';
import 'package:turbo_response/turbo_response.dart';
import 'turbo_firestore_api/data/dtos/example_dto.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(const MyApp());
}

class ExampleAPI extends TurboFirestoreApi<ExampleDTO> {
  ExampleAPI()
      : super(
          collectionPath: () => 'Examples',
          firebaseFirestore: FirebaseFirestore.instance,
          fromJson: ExampleDTO.fromJson,
          toJson: (dto) => dto.toJson(),
        );

  Future<TurboResponse<DocumentReference>> createExample() {
    final random = Random();
    final dto = ExampleDTO(
      thisIsAString: ['yes', 'maybe'][random.nextInt(2)],
      thisIsANumber: random.nextDouble(),
      thisIsABoolean: random.nextBool(),
    );

    return createDoc(writeable: dto);
  }

  Future<TurboResponse<List<ExampleDTO>>> getAllExamples() {
    return listAllWithConverter();
  }

  static ExampleAPI get locate => ExampleAPI();
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Cloud Firestore API Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const TurboFirestoreApiView(),
    );
  }
}
0
likes
160
points
315
downloads

Publisher

verified publisherultrawideturbodev.com

Weekly Downloads

A clean and efficient approach to dealing with data from Firestore.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

cloud_firestore, firebase_auth, flutter, informers, loglytics, rxdart, turbo_response

More

Packages that depend on turbo_firestore_api