A library to put wrapper arround firebase firestore to access it in typesafe elegant way.
Usage
Refer Examples for more usage. Refer Github Repo for detailed example usage.
@Model()
class UserProfile extends BaseModel {
String uid = "";
String name = "";
}
@FirestoreService("UserDataStore")
const userDataSchema = {
'UserProfiles': (
type: UserProfile,
subCollections: {'AuditTrail': (type: AuditTrailEntry)},
),
};
Future<void> addUser(String uid, String name) async {
final UserDataStore store = UserDataStore();
final UserProfile newUser = UserProfile();
newUser.uid = uid;
newUser.name = name;
// Add document with autogenerated id
final doc = (await store.UserProfiles.add(newUser));
final AuditTrailEntry entry = AuditTrailEntry();
entry.uid = newUser.uid;
entry.name = newUser.name;
entry.modifiedAt = DateTime.now();
entry.modifiedBy = "System";
// Add document with specified id
final entryDoc = await doc.AuditTrail.add(entry, "1");
}
Future<UserProfile> getUser(String docId) async {
final UserDataStore store = UserDataStore();
UserProfile user = await store.UserProfiles[docId].data;
AuditTrailEntry entry = await store.UserProfiles[docId].AuditTrail["1"].data;
return user;
}