Finished new image screen, it can already upload pictures that get stored in the storage bucket
This commit is contained in:
parent
31cb7a0e89
commit
d31a96d60f
3 changed files with 17 additions and 8 deletions
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue