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
-zupdateCurrentUsermethod. - 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 FirebaseAuthinstance 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 provideduserobject. Passnullto 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 typicallyundefinedfor user updates.
For a complete list of returned properties, see the official TanStack Query useMutation documentation.