---
category: '@Firebase'
---
# useAuth
Reactive [Firebase Auth](https://firebase.google.com/docs/auth) binding. It provides a reactive `user` and `isAuthenticated` so you
can easily react to changes in the users' authentication status.
## Usage
```vue
{{ user }}
Sign In with Google
```
## Type Declarations
```ts
export interface UseFirebaseAuthOptions {
isAuthenticated: ComputedRef;
user: Ref;
}
/**
* Reactive Firebase Auth binding
*
* @see https://vueuse.org/useAuth
*
* @__NO_SIDE_EFFECTS__
*/
export declare function useAuth(auth: Auth): {
isAuthenticated: ComputedRef;
user: Ref<
{
readonly emailVerified: boolean;
readonly isAnonymous: boolean;
readonly metadata: {
readonly creationTime?: string | undefined;
readonly lastSignInTime?: string | undefined;
};
readonly providerData: {
readonly displayName: string | null;
readonly email: string | null;
readonly phoneNumber: string | null;
readonly photoURL: string | null;
readonly providerId: string;
readonly uid: string;
}[];
readonly refreshToken: string;
readonly tenantId: string | null;
delete: () => Promise;
getIdToken: (forceRefresh?: boolean) => Promise;
getIdTokenResult: (forceRefresh?: boolean) => Promise;
reload: () => Promise;
toJSON: () => object;
readonly displayName: string | null;
readonly email: string | null;
readonly phoneNumber: string | null;
readonly photoURL: string | null;
readonly providerId: string;
readonly uid: string;
} | null,
| User
| {
readonly emailVerified: boolean;
readonly isAnonymous: boolean;
readonly metadata: {
readonly creationTime?: string | undefined;
readonly lastSignInTime?: string | undefined;
};
readonly providerData: {
readonly displayName: string | null;
readonly email: string | null;
readonly phoneNumber: string | null;
readonly photoURL: string | null;
readonly providerId: string;
readonly uid: string;
}[];
readonly refreshToken: string;
readonly tenantId: string | null;
delete: () => Promise;
getIdToken: (forceRefresh?: boolean) => Promise;
getIdTokenResult: (forceRefresh?: boolean) => Promise;
reload: () => Promise;
toJSON: () => object;
readonly displayName: string | null;
readonly email: string | null;
readonly phoneNumber: string | null;
readonly photoURL: string | null;
readonly providerId: string;
readonly uid: string;
}
| null
>;
};
```