Finished new image screen, it can already upload pictures that get stored in the storage bucket

This commit is contained in:
Mariano Uvalle 2019-04-03 01:27:15 -06:00
parent 31cb7a0e89
commit d31a96d60f
3 changed files with 17 additions and 8 deletions

View file

@ -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<File>();
final _user = BehaviorSubject<UserModel>();
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<void> submit() {
List<String> events = _user.value.events;
Future<void> 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<String>.from(event.media)..add(imagePath);
await _firestore.updateEvent(user.id, event.id, media: newMediaList);
}
void dispose() {

View file

@ -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;

View file

@ -299,7 +299,7 @@ class FirestoreProvider {
String eventId, {
String name,
int pendingtasks,
List<int> media,
List<String> media,
List<String> 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');