UserRepository class

UserRepository is responsible for managing user data in Firestore. It provides methods to create, read, update, and delete user records, as well as checking for user existence by email. Uses FirebaseAuth for authentication and FirebaseFirestore for database operations.

Inheritance

Constructors

UserRepository.new()

Properties

hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
no setterinherited
initialized bool
Checks whether the controller has already been initialized.
no setterinherited
isClosed bool
Checks whether the controller has already been closed.
no setterinherited
listeners int
no setterinherited
onDelete InternalFinalCallback<void>
Internal callback that starts the cycle of this controller.
finalinherited
onStart InternalFinalCallback<void>
Called at the exact moment the widget is allocated in memory. It uses an internal "callable" type, to avoid any @overrides in subclases. This method should be internal and is required to define the lifetime cycle of the subclass.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

$configureLifeCycle() → void
inherited
addListener(GetStateUpdate listener) Disposer
Register a closure to be called when the object notifies its listeners.
inherited
addListenerId(Object? key, GetStateUpdate listener) Disposer
inherited
allUsers() Future<List<UserModel>>
This method retrieves all user records from Firestore. @return A Future that resolves to a list of UserModel objects containing user details. @throws String if there is an error fetching the user records. @throws String if there are no user records found. @throws String if there is an error fetching the user records.
createUser(UserModel user) Future<void>
This method creates a new user record in Firestore using the current authenticated user's UID. @param user The UserModel object containing user details to be stored.
deleteUser(String id) Future<void>
This method deletes a user record from Firestore. @param id The ID of the user whose record is to be deleted. @throws String if the user record does not exist. @throws String if there is an error deleting the user record.
dispose() → void
inherited
disposeId(Object id) → void
To dispose an id from future updates(), this ids are registered by GetBuilder() or similar, so is a way to unlink the state change with the Widget from the Controller.
inherited
getUserDetails() Future<UserModel>
This method retrieves the details of the currently authenticated user from Firestore. @return A Future that resolves to a UserModel object containing user details. @throws Exception if the user is not authenticated or if there is an error fetching the user details. @throws String if the user record does not exist. @throws String if there is an error fetching the user details.
getUserDetailsById(String userId) Future<UserModel>
This method retrieves user details by their ID. @param userId The ID of the user whose details are to be retrieved. @return A Future that resolves to a UserModel object containing user details. @throws String if the user record does not exist. @throws String if there is an error fetching the user details.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyChildrens() → void
inherited
onClose() → void
Called before onDelete method. onClose might be used to dispose resources used by the controller. Like closing events, or streams before the controller is destroyed. Or dispose objects that can potentially create some memory leaks, like TextEditingControllers, AnimationControllers. Might be useful as well to persist some data on disk.
inherited
onInit() → void
Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.
inherited
onReady() → void
Called 1 frame after onInit(). It is the perfect place to enter navigation events, like snackbar, dialogs, or a new route, or async request.
inherited
recordExist(String email) Future<bool>
Check if user exists with email @param email The email address to check for user existence. @return A Future that resolves to a boolean indicating whether a user with the given email exists. @throws String if there is an error fetching the record.
refresh() → void
inherited
refreshGroup(Object id) → void
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that the object notifies.
inherited
removeListenerId(Object id, VoidCallback listener) → void
inherited
toString() String
A string representation of this object.
inherited
update([List<Object>? ids, bool condition = true]) → void
Rebuilds GetBuilder each time you call update(); Can take a List of ids, that will only update the matching GetBuilder( id: ), ids can be reused among GetBuilders like group tags. The update will only notify the Widgets, if condition is true.
inherited
updateUserRecord(String userId, Map<String, dynamic> data) Future<void>
This method updates an existing user record in Firestore. @param userId The ID of the user whose record is to be updated. @param data A map containing the fields to be updated in the user record. @throws String if the user record does not exist. @throws String if there is an error updating the user record.

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

instance UserRepository
no setter