FlutterFire: Integration testing against Firebase Emulator Suite / FirebaseStorage

Viewed 57

Production wise, my code accesses live Storage successfully.

But implementing tests with FlutterFire against Firebase Emulator Suite fails:

Error

MissingPluginException(No implementation found for method Storage#useEmulator on channel plugins.flutter.io/firebase_storage)

Code

Future<void> init() async {
  debugDefaultTargetPlatformOverride = TargetPlatform.android;
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform, // this is the LIVE config!
  );
  FirebaseStorage.instance.useStorageEmulator('localhost', 9199);
}

void main() async {
  await init();

  test('just dummy test', () async {
    final metadata = SettableMetadata(contentType: "text/plain");
    final storageRef = FirebaseStorage.instance.ref();
    const path = 'test.txt';
    const payload = 'bla bla bla';
    try {
      await storageRef
          .child(path)
          .putString(payload, metadata: metadata, format: PutStringFormat.raw);
      expect(true, true); 
    } on FirebaseException catch (error) {
      print(error);
    }
  });
}

Question

How to provide a proper firebase_storage implementation for testing from the command line (flutter test test.dart) ?

0 Answers
Related