diff --git a/lib/src/blocs/new_image_bloc.dart b/lib/src/blocs/new_image_bloc.dart index 9d479e9..7b09795 100644 --- a/lib/src/blocs/new_image_bloc.dart +++ b/lib/src/blocs/new_image_bloc.dart @@ -14,10 +14,11 @@ import '../resources/firestore_provider.dart'; class NewImageBloc { final AuthService _auth = authService; final FirestoreProvider _firestore = firestoreProvider; + final FirebaseStorageProvider _storage = storageProvider; final _picture = BehaviorSubject(); final _user = BehaviorSubject(); - String event; + String eventName; NewImageBloc() { setCurrentUser(); @@ -36,12 +37,19 @@ class NewImageBloc { _user.add(userModel); } - void setEvent(String newEvent) { - event = newEvent; + void setEvent(String newEventName) { + eventName = newEventName; } - Future submit() { - List events = _user.value.events; + Future submit() async { + final user = _user.value; + final StorageUploadTask uploadTask = + _storage.uploadFile(_picture.value, folder: '${user.id}/'); + final storageSnapshot = await uploadTask.onComplete; + final imagePath = storageSnapshot.ref.path; + EventModel event = await _firestore.getEvent(user.id, eventName: eventName); + final newMediaList = List.from(event.media)..add(imagePath); + await _firestore.updateEvent(user.id, event.id, media: newMediaList); } void dispose() { diff --git a/lib/src/resources/firebase_storage_provider.dart b/lib/src/resources/firebase_storage_provider.dart index ecbc75b..7832d77 100644 --- a/lib/src/resources/firebase_storage_provider.dart +++ b/lib/src/resources/firebase_storage_provider.dart @@ -3,7 +3,8 @@ import 'dart:io'; import 'package:firebase_storage/firebase_storage.dart'; import 'package:uuid/uuid.dart'; -export 'package:firebase_storage/firebase_storage.dart' show StorageUploadTask; +export 'package:firebase_storage/firebase_storage.dart' + show StorageUploadTask, StorageTaskSnapshot; class FirebaseStorageProvider { final StorageReference _storage; diff --git a/lib/src/resources/firestore_provider.dart b/lib/src/resources/firestore_provider.dart index c456424..deef9dc 100644 --- a/lib/src/resources/firestore_provider.dart +++ b/lib/src/resources/firestore_provider.dart @@ -299,7 +299,7 @@ class FirestoreProvider { String eventId, { String name, int pendingtasks, - List media, + List media, List tasks, int highPriority, int mediumPriority, @@ -323,7 +323,7 @@ class FirestoreProvider { try { final documentReference = - _firestore.document('users/$userId/Events/$eventId'); + _firestore.document('users/$userId/events/$eventId'); await documentReference.setData(newData, merge: true); } catch (e) { print('Error while updating Event in Firestore: $e');