useUpdateCurrentUserMutation
The useUpdateCurrentUserMutation
hook is designed to update the current authenticated user using Firebase Authentication.
It integrates Firebase's updateCurrentUser
method with TanStack Query’s mutation lifecycle for easy state management and error handling.
Features
- Firebase Authentication Integration: Simplifies updating the current authenticated user using Firebase's
-zupdateCurrentUser
method. - Built-in State Management: Tracks the mutation lifecycle (
idle
,loading
,success
,error
). - Customizable Callbacks: Supports
onSuccess
,onError
, and other TanStack Query mutation options. - Type-Safe Handling: Ensures type safety with TanStack Query and Firebase types.
Installation
Ensure you have the necessary Firebase, TanStack Query and TanStack Query Firebase packages installed:
npm install firebase @tanstack/react-query @tanstack-query-firebase/react
Usage
import { useUpdateCurrentUserMutation } from "./useUpdateCurrentUserMutation";
function UpdateUserComponent() {
const { mutate, isPending, isSuccess, isError, error } = useUpdateCurrentUserMutation(auth);
const handleUpdateUser = (newUser) => {
mutate(newUser); // Trigger the user update mutation
};
return (
<div>
{isPending && <p>Updating user...</p>}
{isSuccess && <p>User updated successfully!</p>}
{isError && <p>Error: {error?.message}</p>}
<button onClick={() => handleUpdateUser(newUser)} disabled={isLoading}>
Update User
</button>
</div>
);
}
Parameters
auth
: The FirebaseAuth
instance used to manage authentication.options
(optional):
An object for customizing the mutation behavior. Accepts all options supported by TanStack Query'suseMutation
, such as:onSuccess
: Callback fired when the mutation succeeds.onError
: Callback fired when the mutation fails.onSettled
: Callback fired after the mutation finishes, regardless of success or failure.
For a full list of supported options, see the TanStack Query useMutation documentation
Returns
The hook returns the following properties, provided by TanStack Query's useMutation:
mutate({ email, password })
: Function to trigger the user update mutation with the provideduser
object. Passnull
to sign out the user.
mutate(user: User | null): void;
-
isPending
: Boolean indicating if the mutation is in progress (alias forisLoading
). -
isSuccess
: Boolean indicating if the mutation has successfully completed. -
isError
: Boolean indicating if the mutation has failed. -
error
: The error object, if the mutation failed. -
data
: The result of the mutation, which is typicallyundefined
for user updates.
For a complete list of returned properties, see the official TanStack Query useMutation documentation.