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) ?