FirebaseDogsPlugin function

DogPlugin FirebaseDogsPlugin({
  1. FirebaseFirestore? firestore,
  2. bool registerInteropConverters = true,
})

Implementation

DogPlugin FirebaseDogsPlugin({
  FirebaseFirestore? firestore,
  bool registerInteropConverters = true,
}) =>
    (engine) {
      firestore ??= FirebaseFirestore.instance;

      if (firestore == null) {
        throw ArgumentError(
            "FirebaseFirestore instance must be provided or initialized before using FirebaseDogsPlugin.");
      }

      if (registerInteropConverters) {
        engine.registerAutomatic(FirebaseTimestampConverter());
        engine.registerAutomatic(FirebaseGeoPointConverter());
        engine.registerAutomatic(FirebaseBlobConverter());
      }

      var forked =
          engine.getChildOrFork(#Firebase, codec: FirebaseNativeCodec(), callback: (engine) {
        engine.registerAutomatic(DateTimeToTimestampConverter());
        engine.registerAutomatic(Uint8ListToBlobConverter());
        engine.registerModeFactory(FirestoreDocumentOpmodeFactory());
      });

      final firestoreEngine = DogFirestoreEngine(forked, firestore!);
      engine.setMeta<DogFirestoreEngine>(firestoreEngine);
    };