Changed id to be optional on [EventModel], [TaskModel] and [UserModel]

This commit is contained in:
Mariano Uvalle 2019-02-23 15:04:40 -06:00
parent a68b307eeb
commit 8498517b1e
4 changed files with 25 additions and 9 deletions

View file

@ -6,6 +6,8 @@ import '../models/user_model.dart';
import '../models/task_model.dart';
/// A connection to the Cloud Firestore database
///
/// Implempents CRUD operations for users, tasks and events.
class FirestoreProvider {
final Firestore firestore = Firestore.instance;
@ -26,12 +28,16 @@ class FirestoreProvider {
}
final userSnapshot = snapshot.documents.first;
return UserModel.fromFirestore(
userSnapshot.data, userSnapshot.documentID);
userSnapshot.data,
id: userSnapshot.documentID,
);
},
);
return Observable(mappedStream);
}
//-------------------------Task related operations----------------------------
/// Returns a stream of [List<Task>]
///
/// The [event] parameter is used to query tasks that only are part of a
@ -50,7 +56,10 @@ class FirestoreProvider {
(QuerySnapshot snapshot) {
return snapshot.documents.map(
(DocumentSnapshot document) {
return TaskModel.fromFirestore(document.data, document.documentID);
return TaskModel.fromFirestore(
document.data,
id: document.documentID,
);
},
).toList();
},
@ -63,13 +72,18 @@ class FirestoreProvider {
final mappedStream =
firestore.collection('tasks').document(id).snapshots().map(
(DocumentSnapshot snapshot) {
return TaskModel.fromFirestore(snapshot.data, snapshot.documentID);
return TaskModel.fromFirestore(
snapshot.data,
id: snapshot.documentID,
);
},
);
return Observable(mappedStream);
}
//-----------------------Event related operations-----------------------------
// TODO: Change the Events collction name to 'events'
Observable<List<EventModel>> getUserEvents(String userDocumentId) {
final mappedStream = firestore
@ -81,7 +95,9 @@ class FirestoreProvider {
(QuerySnapshot snapshot) {
return snapshot.documents.map((DocumentSnapshot documentSnapshot) {
return EventModel.fromFirestore(
documentSnapshot.data, documentSnapshot.documentID);
documentSnapshot.data,
id: documentSnapshot.documentID,
);
}).toList();
},
);