react-query-firebase 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/package.json +1 -1
  2. package/react-native/analytics/index.d.ts +3 -0
  3. package/react-native/analytics/index.js +3 -0
  4. package/react-native/analytics/useAnalytics.d.ts +5 -0
  5. package/react-native/analytics/useAnalytics.js +10 -0
  6. package/react-native/analytics/useLogEvent.d.ts +17 -0
  7. package/react-native/analytics/useLogEvent.js +21 -0
  8. package/react-native/analytics/useSetAnalyticsCollectionEnabled.d.ts +10 -0
  9. package/react-native/analytics/useSetAnalyticsCollectionEnabled.js +16 -0
  10. package/react-native/auth/index.d.ts +12 -0
  11. package/react-native/auth/index.js +12 -0
  12. package/react-native/auth/mutation-keys.d.ts +7 -0
  13. package/react-native/auth/mutation-keys.js +19 -0
  14. package/react-native/auth/useAuth.d.ts +5 -0
  15. package/react-native/auth/useAuth.js +10 -0
  16. package/react-native/auth/useCreateUserWitEmailAndPasswordMutation.d.ts +15 -0
  17. package/react-native/auth/useCreateUserWitEmailAndPasswordMutation.js +19 -0
  18. package/react-native/auth/useCurrentUser.d.ts +6 -0
  19. package/react-native/auth/useCurrentUser.js +20 -0
  20. package/react-native/auth/useIdToken.d.ts +30 -0
  21. package/react-native/auth/useIdToken.js +66 -0
  22. package/react-native/auth/useReauthenticateWitCredentialMutation.d.ts +16 -0
  23. package/react-native/auth/useReauthenticateWitCredentialMutation.js +18 -0
  24. package/react-native/auth/useReauthenticateWitRedirectMutation.d.ts +17 -0
  25. package/react-native/auth/useReauthenticateWitRedirectMutation.js +18 -0
  26. package/react-native/auth/useSendEmailVerificationMutation.d.ts +13 -0
  27. package/react-native/auth/useSendEmailVerificationMutation.js +16 -0
  28. package/react-native/auth/useSignInWitEmailAndPasswordMutation.d.ts +15 -0
  29. package/react-native/auth/useSignInWitEmailAndPasswordMutation.js +19 -0
  30. package/react-native/auth/useSignInWitRedirectMutation.d.ts +14 -0
  31. package/react-native/auth/useSignInWitRedirectMutation.js +18 -0
  32. package/react-native/auth/useSignOutMutation.d.ts +10 -0
  33. package/react-native/auth/useSignOutMutation.js +19 -0
  34. package/react-native/auth/useUpdateProfileMutation.d.ts +15 -0
  35. package/react-native/auth/useUpdateProfileMutation.js +17 -0
  36. package/react-native/context/FirebaseContextProvider.d.ts +1 -2
  37. package/react-native/context/FirebaseContextProvider.js +3 -3
  38. package/react-native/context/FirebaseContextProvider.tsx +3 -5
  39. package/react-native/firestore/index.d.ts +17 -0
  40. package/react-native/firestore/index.js +17 -0
  41. package/react-native/firestore/useAddDocMutation.d.ts +21 -0
  42. package/react-native/firestore/useAddDocMutation.js +25 -0
  43. package/react-native/firestore/useBatchWrite.d.ts +15 -0
  44. package/react-native/firestore/useBatchWrite.js +21 -0
  45. package/react-native/firestore/useCollectionReference.d.ts +18 -0
  46. package/react-native/firestore/useCollectionReference.js +22 -0
  47. package/react-native/firestore/useCompositeFilter.d.ts +40 -0
  48. package/react-native/firestore/useCompositeFilter.js +42 -0
  49. package/react-native/firestore/useCountQuery.d.ts +23 -0
  50. package/react-native/firestore/useCountQuery.js +30 -0
  51. package/react-native/firestore/useDeleteDocMutation.d.ts +18 -0
  52. package/react-native/firestore/useDeleteDocMutation.js +23 -0
  53. package/react-native/firestore/useDocReference.d.ts +19 -0
  54. package/react-native/firestore/useDocReference.js +36 -0
  55. package/react-native/firestore/useDocReferences.d.ts +23 -0
  56. package/react-native/firestore/useDocReferences.js +29 -0
  57. package/react-native/firestore/useFirestore.d.ts +7 -0
  58. package/react-native/firestore/useFirestore.js +12 -0
  59. package/react-native/firestore/useGetDocData.d.ts +18 -0
  60. package/react-native/firestore/useGetDocData.js +18 -0
  61. package/react-native/firestore/useGetRealtimeDocData.d.ts +57 -0
  62. package/react-native/firestore/useGetRealtimeDocData.js +56 -0
  63. package/react-native/firestore/useInfiniteQuery.d.ts +17 -0
  64. package/react-native/firestore/useInfiniteQuery.js +28 -0
  65. package/react-native/firestore/useQuery.d.ts +24 -0
  66. package/react-native/firestore/useQuery.js +34 -0
  67. package/react-native/firestore/useQueryConstraints.d.ts +54 -0
  68. package/react-native/firestore/useQueryConstraints.js +66 -0
  69. package/react-native/firestore/useRunTransaction.d.ts +15 -0
  70. package/react-native/firestore/useRunTransaction.js +19 -0
  71. package/react-native/firestore/useSetDocMutation.d.ts +20 -0
  72. package/react-native/firestore/useSetDocMutation.js +25 -0
  73. package/react-native/firestore/useUpdateDocMutation.d.ts +30 -0
  74. package/react-native/firestore/useUpdateDocMutation.js +37 -0
  75. package/react-native/firestore/utils/getDocData.d.ts +18 -0
  76. package/react-native/firestore/utils/getDocData.js +22 -0
  77. package/react-native/firestore/utils/getDocRef.d.ts +19 -0
  78. package/react-native/firestore/utils/getDocRef.js +21 -0
  79. package/react-native/firestore/utils/getDocSnap.d.ts +20 -0
  80. package/react-native/firestore/utils/getDocSnap.js +25 -0
  81. package/react-native/remoteConfig/index.d.ts +3 -0
  82. package/react-native/remoteConfig/index.js +3 -0
  83. package/react-native/remoteConfig/useFetchAndActivate.d.ts +11 -0
  84. package/react-native/remoteConfig/useFetchAndActivate.js +31 -0
  85. package/react-native/remoteConfig/useGetValue.d.ts +7 -0
  86. package/react-native/remoteConfig/useGetValue.js +15 -0
  87. package/react-native/remoteConfig/useRemoteConfig.d.ts +5 -0
  88. package/react-native/remoteConfig/useRemoteConfig.js +10 -0
  89. package/types/AppModel.d.ts +7 -0
  90. package/types/AppModel.js +1 -0
  91. package/types/QueryConstraints.d.ts +49 -0
  92. package/types/QueryConstraints.js +1 -0
  93. package/web/analytics/index.d.ts +3 -0
  94. package/web/analytics/index.js +3 -0
  95. package/web/analytics/useAnalytics.d.ts +5 -0
  96. package/web/analytics/useAnalytics.js +10 -0
  97. package/web/analytics/useLogEvent.d.ts +17 -0
  98. package/web/analytics/useLogEvent.js +21 -0
  99. package/web/analytics/useSetAnalyticsCollectionEnabled.d.ts +10 -0
  100. package/web/analytics/useSetAnalyticsCollectionEnabled.js +16 -0
  101. package/web/auth/index.d.ts +13 -0
  102. package/web/auth/index.js +13 -0
  103. package/web/auth/mutation-keys.d.ts +7 -0
  104. package/web/auth/mutation-keys.js +19 -0
  105. package/web/auth/useAuth.d.ts +5 -0
  106. package/web/auth/useAuth.js +10 -0
  107. package/web/auth/useAuthStateReady.d.ts +6 -0
  108. package/web/auth/useAuthStateReady.js +19 -0
  109. package/web/auth/useCreateUserWitEmailAndPasswordMutation.d.ts +15 -0
  110. package/web/auth/useCreateUserWitEmailAndPasswordMutation.js +19 -0
  111. package/web/auth/useCurrentUser.d.ts +6 -0
  112. package/web/auth/useCurrentUser.js +20 -0
  113. package/web/auth/useIdToken.d.ts +30 -0
  114. package/web/auth/useIdToken.js +66 -0
  115. package/web/auth/useReauthenticateWitCredentialMutation.d.ts +16 -0
  116. package/web/auth/useReauthenticateWitCredentialMutation.js +18 -0
  117. package/web/auth/useReauthenticateWitRedirectMutation.d.ts +17 -0
  118. package/web/auth/useReauthenticateWitRedirectMutation.js +18 -0
  119. package/web/auth/useSendEmailVerificationMutation.d.ts +13 -0
  120. package/web/auth/useSendEmailVerificationMutation.js +16 -0
  121. package/web/auth/useSignInWitEmailAndPasswordMutation.d.ts +15 -0
  122. package/web/auth/useSignInWitEmailAndPasswordMutation.js +19 -0
  123. package/web/auth/useSignInWitRedirectMutation.d.ts +14 -0
  124. package/web/auth/useSignInWitRedirectMutation.js +18 -0
  125. package/web/auth/useSignOutMutation.d.ts +10 -0
  126. package/web/auth/useSignOutMutation.js +19 -0
  127. package/web/auth/useUpdateProfileMutation.d.ts +15 -0
  128. package/web/auth/useUpdateProfileMutation.js +17 -0
  129. package/web/firestore/index.d.ts +17 -0
  130. package/web/firestore/index.js +17 -0
  131. package/web/firestore/useAddDocMutation.d.ts +23 -0
  132. package/web/firestore/useAddDocMutation.js +26 -0
  133. package/web/firestore/useBatchWrite.d.ts +15 -0
  134. package/web/firestore/useBatchWrite.js +21 -0
  135. package/web/firestore/useCollectionReference.d.ts +18 -0
  136. package/web/firestore/useCollectionReference.js +24 -0
  137. package/web/firestore/useCompositeFilter.d.ts +40 -0
  138. package/web/firestore/useCompositeFilter.js +41 -0
  139. package/web/firestore/useCountQuery.d.ts +23 -0
  140. package/web/firestore/useCountQuery.js +30 -0
  141. package/web/firestore/useDeleteDocMutation.d.ts +18 -0
  142. package/web/firestore/useDeleteDocMutation.js +23 -0
  143. package/web/firestore/useDocReference.d.ts +19 -0
  144. package/web/firestore/useDocReference.js +45 -0
  145. package/web/firestore/useDocReferences.d.ts +23 -0
  146. package/web/firestore/useDocReferences.js +31 -0
  147. package/web/firestore/useFirestore.d.ts +7 -0
  148. package/web/firestore/useFirestore.js +12 -0
  149. package/web/firestore/useGetDocData.d.ts +18 -0
  150. package/web/firestore/useGetDocData.js +18 -0
  151. package/web/firestore/useGetRealtimeDocData.d.ts +57 -0
  152. package/web/firestore/useGetRealtimeDocData.js +56 -0
  153. package/web/firestore/useInfiniteQuery.d.ts +18 -0
  154. package/web/firestore/useInfiniteQuery.js +28 -0
  155. package/web/firestore/useQuery.d.ts +25 -0
  156. package/web/firestore/useQuery.js +34 -0
  157. package/web/firestore/useQueryConstraints.d.ts +55 -0
  158. package/web/firestore/useQueryConstraints.js +66 -0
  159. package/web/firestore/useRunTransaction.d.ts +15 -0
  160. package/web/firestore/useRunTransaction.js +19 -0
  161. package/web/firestore/useSetDocMutation.d.ts +20 -0
  162. package/web/firestore/useSetDocMutation.js +25 -0
  163. package/web/firestore/useUpdateDocMutation.d.ts +31 -0
  164. package/web/firestore/useUpdateDocMutation.js +37 -0
  165. package/web/firestore/utils/getDocData.d.ts +18 -0
  166. package/web/firestore/utils/getDocData.js +22 -0
  167. package/web/firestore/utils/getDocRef.d.ts +19 -0
  168. package/web/firestore/utils/getDocRef.js +25 -0
  169. package/web/firestore/utils/getDocSnap.d.ts +20 -0
  170. package/web/firestore/utils/getDocSnap.js +25 -0
  171. package/web/remoteConfig/index.d.ts +3 -0
  172. package/web/remoteConfig/index.js +3 -0
  173. package/web/remoteConfig/useFetchAndActivate.d.ts +11 -0
  174. package/web/remoteConfig/useFetchAndActivate.js +31 -0
  175. package/web/remoteConfig/useGetValue.d.ts +7 -0
  176. package/web/remoteConfig/useGetValue.js +15 -0
  177. package/web/remoteConfig/useRemoteConfig.d.ts +5 -0
  178. package/web/remoteConfig/useRemoteConfig.js +10 -0
package/package.json CHANGED
@@ -74,5 +74,5 @@
74
74
  "docs:build": "vitepress build docs",
75
75
  "docs:preview": "vitepress preview docs"
76
76
  },
77
- "version": "2.1.1"
77
+ "version": "2.1.3"
78
78
  }
@@ -0,0 +1,3 @@
1
+ export * from "./useLogEvent";
2
+ export * from "./useAnalytics";
3
+ export * from "./useSetAnalyticsCollectionEnabled";
@@ -0,0 +1,3 @@
1
+ export * from "./useLogEvent";
2
+ export * from "./useAnalytics";
3
+ export * from "./useSetAnalyticsCollectionEnabled";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Hook to access Firebase analytics from the Firebase context.
3
+ * @returns {any} The analytics object from the Firebase context.
4
+ */
5
+ export declare const useAnalytics: () => import("@react-native-firebase/analytics").FirebaseAnalyticsTypes.Module;
@@ -0,0 +1,10 @@
1
+ import { useContext } from "react";
2
+ import { FirebaseContext } from "../context/FirebaseContext";
3
+ /**
4
+ * Hook to access Firebase analytics from the Firebase context.
5
+ * @returns {any} The analytics object from the Firebase context.
6
+ */
7
+ export const useAnalytics = () => {
8
+ const { analytics } = useContext(FirebaseContext);
9
+ return analytics;
10
+ };
@@ -0,0 +1,17 @@
1
+ type UseLogEventOptions = {
2
+ eventName: string;
3
+ eventParams?: {
4
+ [key: string]: unknown;
5
+ };
6
+ };
7
+ /**
8
+ * Custom hook to create a log event function that logs an analytics event with specified parameters.
9
+ * @param {Object} options - The options for the log event.
10
+ * @param {string} options.eventName - The name of the event to be logged.
11
+ * @param {Object} options.eventParams - The parameters to be sent along with the event.
12
+ * @returns {Object} An object containing a `logEvent` function that, when called, logs the event.
13
+ */
14
+ export declare const useLogEvent: ({ eventName, eventParams }: UseLogEventOptions) => {
15
+ logEvent: () => void;
16
+ };
17
+ export {};
@@ -0,0 +1,21 @@
1
+ import { logEvent } from "@react-native-firebase/analytics";
2
+ import { useAnalytics } from "./useAnalytics";
3
+ import { useCallback, useMemo } from "react";
4
+ /**
5
+ * Custom hook to create a log event function that logs an analytics event with specified parameters.
6
+ * @param {Object} options - The options for the log event.
7
+ * @param {string} options.eventName - The name of the event to be logged.
8
+ * @param {Object} options.eventParams - The parameters to be sent along with the event.
9
+ * @returns {Object} An object containing a `logEvent` function that, when called, logs the event.
10
+ */
11
+ export const useLogEvent = ({ eventName, eventParams }) => {
12
+ const analytics = useAnalytics();
13
+ const logEventCallback = useCallback(() => {
14
+ if (analytics) {
15
+ logEvent(analytics, eventName, eventParams);
16
+ }
17
+ }, [eventName, eventParams, analytics]);
18
+ return useMemo(() => ({
19
+ logEvent: logEventCallback
20
+ }), [logEventCallback]);
21
+ };
@@ -0,0 +1,10 @@
1
+ type UseSetAnalyticsCollectionEnabledOptions = {
2
+ enabled?: boolean;
3
+ };
4
+ /**
5
+ * Custom hook to enable or disable analytics collection
6
+ * @param {Object} options - The options for hook.
7
+ * @param {string} options.enabled - Flag that identifies if analytics collection is enabled.
8
+ */
9
+ export declare const useSetAnalyticsCollectionEnabled: ({ enabled }: UseSetAnalyticsCollectionEnabledOptions) => void;
10
+ export {};
@@ -0,0 +1,16 @@
1
+ import { setAnalyticsCollectionEnabled } from "@react-native-firebase/analytics";
2
+ import { useAnalytics } from "./useAnalytics";
3
+ import { useEffect } from "react";
4
+ /**
5
+ * Custom hook to enable or disable analytics collection
6
+ * @param {Object} options - The options for hook.
7
+ * @param {string} options.enabled - Flag that identifies if analytics collection is enabled.
8
+ */
9
+ export const useSetAnalyticsCollectionEnabled = ({ enabled = false }) => {
10
+ const analytics = useAnalytics();
11
+ useEffect(() => {
12
+ if (analytics) {
13
+ setAnalyticsCollectionEnabled(analytics, enabled);
14
+ }
15
+ }, [analytics, enabled]);
16
+ };
@@ -0,0 +1,12 @@
1
+ export * from "./mutation-keys";
2
+ export * from "./useAuth";
3
+ export * from "./useCreateUserWitEmailAndPasswordMutation";
4
+ export * from "./useSendEmailVerificationMutation";
5
+ export * from "./useSignInWitEmailAndPasswordMutation";
6
+ export * from "./useCurrentUser";
7
+ export * from "./useSignInWitRedirectMutation";
8
+ export * from "./useUpdateProfileMutation";
9
+ export * from "./useSignOutMutation";
10
+ export * from "./useIdToken";
11
+ export * from "./useReauthenticateWitCredentialMutation";
12
+ export * from "./useReauthenticateWitRedirectMutation";
@@ -0,0 +1,12 @@
1
+ export * from "./mutation-keys";
2
+ export * from "./useAuth";
3
+ export * from "./useCreateUserWitEmailAndPasswordMutation";
4
+ export * from "./useSendEmailVerificationMutation";
5
+ export * from "./useSignInWitEmailAndPasswordMutation";
6
+ export * from "./useCurrentUser";
7
+ export * from "./useSignInWitRedirectMutation";
8
+ export * from "./useUpdateProfileMutation";
9
+ export * from "./useSignOutMutation";
10
+ export * from "./useIdToken";
11
+ export * from "./useReauthenticateWitCredentialMutation";
12
+ export * from "./useReauthenticateWitRedirectMutation";
@@ -0,0 +1,7 @@
1
+ export declare const CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY: readonly ["FIREBASE", "AUTH", "CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION"];
2
+ export declare const SEND_EMAIL_VERIFICATION_MUTATION_KEY: readonly ["FIREBASE", "AUTH", "SEND_EMAIL_VERIFICATION_MUTATION"];
3
+ export declare const SIGN_IN_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY: readonly ["FIREBASE", "AUTH", "SIGN_IN_WITH_EMAIL_AND_PASSWORD_MUTATION"];
4
+ export declare const SIGN_IN_WITH_REDIRECT_MUTATION_KEY: readonly ["FIREBASE", "AUTH", "SIGN_IN_WITH_REDIRECT_MUTATION"];
5
+ export declare const SIGN_OUT_MUTATION_KEY: readonly ["FIREBASE", "AUTH", "SIGN_OUT"];
6
+ export declare const REAUTHENTICATE_WITH_REDIRECT_MUTATION_KEY: readonly ["FIREBASE", "AUTH", "REAUTHENTICATE_WITH_REDIRECT"];
7
+ export declare const REAUTHENTICATE_WITH_CREDENTIAL_MUTATION_KEY: readonly ["FIREBASE", "AUTH", "REAUTHENTICATE_WITH_CREDENTIAL"];
@@ -0,0 +1,19 @@
1
+ export const CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY = [
2
+ "FIREBASE",
3
+ "AUTH",
4
+ "CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION"
5
+ ];
6
+ export const SEND_EMAIL_VERIFICATION_MUTATION_KEY = ["FIREBASE", "AUTH", "SEND_EMAIL_VERIFICATION_MUTATION"];
7
+ export const SIGN_IN_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY = [
8
+ "FIREBASE",
9
+ "AUTH",
10
+ "SIGN_IN_WITH_EMAIL_AND_PASSWORD_MUTATION"
11
+ ];
12
+ export const SIGN_IN_WITH_REDIRECT_MUTATION_KEY = ["FIREBASE", "AUTH", "SIGN_IN_WITH_REDIRECT_MUTATION"];
13
+ export const SIGN_OUT_MUTATION_KEY = ["FIREBASE", "AUTH", "SIGN_OUT"];
14
+ export const REAUTHENTICATE_WITH_REDIRECT_MUTATION_KEY = ["FIREBASE", "AUTH", "REAUTHENTICATE_WITH_REDIRECT"];
15
+ export const REAUTHENTICATE_WITH_CREDENTIAL_MUTATION_KEY = [
16
+ "FIREBASE",
17
+ "AUTH",
18
+ "REAUTHENTICATE_WITH_CREDENTIAL"
19
+ ];
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Custom hook to retrieve the authentication object from the Firebase context.
3
+ * @returns {Auth} The authentication object from the Firebase context.
4
+ */
5
+ export declare const useAuth: () => import("@react-native-firebase/auth").FirebaseAuthTypes.Module;
@@ -0,0 +1,10 @@
1
+ import { useContext } from "react";
2
+ import { FirebaseContext } from "../context/FirebaseContext";
3
+ /**
4
+ * Custom hook to retrieve the authentication object from the Firebase context.
5
+ * @returns {Auth} The authentication object from the Firebase context.
6
+ */
7
+ export const useAuth = () => {
8
+ const { auth } = useContext(FirebaseContext);
9
+ return auth;
10
+ };
@@ -0,0 +1,15 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { FirebaseAuthTypes } from "@react-native-firebase/auth";
3
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
4
+ export type UseCreateUserWitEmailAndPasswordMutationVariables = {
5
+ email: string;
6
+ password: string;
7
+ };
8
+ /**
9
+ * Custom hook to initiate a user creation process using email and password with Firebase authentication.
10
+ * This hook utilizes the `useMutation` functionality to support creating new user credentials asynchronously.
11
+ *
12
+ * @param {Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseCreateUserWitEmailAndPasswordMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional settings to customize the mutation behavior, excluding `mutationKey` and `mutationFn`.
13
+ * @returns {UseMutationResult<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseCreateUserWitEmailAndPasswordMutationVariables, TContext>} The result of the mutation which includes status, user credentials, and error information if any.
14
+ */
15
+ export declare const useCreateUserWitEmailAndPasswordMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseCreateUserWitEmailAndPasswordMutationVariables, TContext>, "mutationKey" | "mutationFn">) => import("@tanstack/react-query").UseMutationResult<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseCreateUserWitEmailAndPasswordMutationVariables, TContext>;
@@ -0,0 +1,19 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { createUserWithEmailAndPassword } from "@react-native-firebase/auth";
3
+ import { useAuth } from "./useAuth";
4
+ import { CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY } from "./mutation-keys";
5
+ /**
6
+ * Custom hook to initiate a user creation process using email and password with Firebase authentication.
7
+ * This hook utilizes the `useMutation` functionality to support creating new user credentials asynchronously.
8
+ *
9
+ * @param {Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseCreateUserWitEmailAndPasswordMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional settings to customize the mutation behavior, excluding `mutationKey` and `mutationFn`.
10
+ * @returns {UseMutationResult<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseCreateUserWitEmailAndPasswordMutationVariables, TContext>} The result of the mutation which includes status, user credentials, and error information if any.
11
+ */
12
+ export const useCreateUserWitEmailAndPasswordMutation = (options = {}) => {
13
+ const firebaseAuth = useAuth();
14
+ return useMutation({
15
+ ...options,
16
+ mutationFn: async ({ email, password }) => await createUserWithEmailAndPassword(firebaseAuth, email, password),
17
+ mutationKey: CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY
18
+ });
19
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hook that provides the current authenticated user from Firebase Auth.
3
+ * It listens for changes in the authentication state and updates the user accordingly.
4
+ * @returns {Object|null} The current authenticated user object or null if no user is authenticated.
5
+ */
6
+ export declare const useCurrentUser: () => import("@react-native-firebase/auth").FirebaseAuthTypes.User | null;
@@ -0,0 +1,20 @@
1
+ import { useAuth } from "./useAuth";
2
+ import { useEffect, useState } from "react";
3
+ /**
4
+ * Hook that provides the current authenticated user from Firebase Auth.
5
+ * It listens for changes in the authentication state and updates the user accordingly.
6
+ * @returns {Object|null} The current authenticated user object or null if no user is authenticated.
7
+ */
8
+ export const useCurrentUser = () => {
9
+ const { onAuthStateChanged, currentUser: fbCurrentUser } = useAuth();
10
+ const [currentUser, setCurrentUser] = useState(fbCurrentUser);
11
+ useEffect(() => {
12
+ const unsubscribe = onAuthStateChanged((user) => {
13
+ setCurrentUser(user);
14
+ });
15
+ return () => {
16
+ unsubscribe();
17
+ };
18
+ }, [currentUser?.uid, onAuthStateChanged]);
19
+ return currentUser;
20
+ };
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @inline
3
+ */
4
+ export type UseIdTokenResult = {
5
+ idToken: string;
6
+ refresh: () => Promise<string | undefined>;
7
+ };
8
+ /**
9
+ * A hook to manage the ID token.
10
+ * It monitors changes to the ID token and provides the token itself along with a refresh method to update the token when needed.
11
+ *
12
+ * @group Hook
13
+ *
14
+ * @returns {UseIdTokenResult}
15
+ *
16
+ * @example
17
+ * ```jsx
18
+ * export const MyComponent = () => {
19
+ * const result = useIdToken();
20
+ * useEffect(() => {
21
+ * const timeout = setTimeout(() => {
22
+ * result.refresh();
23
+ * }, 5000);
24
+ * return () => clearTimeout();
25
+ * }, [])
26
+ * console.log(resilt.idToken);
27
+ * };
28
+ * ```
29
+ */
30
+ export declare const useIdToken: () => UseIdTokenResult;
@@ -0,0 +1,66 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ import { useCurrentUser } from "./useCurrentUser";
3
+ import { onIdTokenChanged } from "@react-native-firebase/auth";
4
+ import { useAuth } from "./useAuth";
5
+ /**
6
+ * A hook to manage the ID token.
7
+ * It monitors changes to the ID token and provides the token itself along with a refresh method to update the token when needed.
8
+ *
9
+ * @group Hook
10
+ *
11
+ * @returns {UseIdTokenResult}
12
+ *
13
+ * @example
14
+ * ```jsx
15
+ * export const MyComponent = () => {
16
+ * const result = useIdToken();
17
+ * useEffect(() => {
18
+ * const timeout = setTimeout(() => {
19
+ * result.refresh();
20
+ * }, 5000);
21
+ * return () => clearTimeout();
22
+ * }, [])
23
+ * console.log(resilt.idToken);
24
+ * };
25
+ * ```
26
+ */
27
+ export const useIdToken = () => {
28
+ const auth = useAuth();
29
+ const currentUser = useCurrentUser();
30
+ const [idToken, setIdToken] = useState("");
31
+ const callback = useCallback(async () => {
32
+ if (!currentUser) {
33
+ setIdToken("");
34
+ return;
35
+ }
36
+ const idToken = await currentUser.getIdToken();
37
+ setIdToken(idToken);
38
+ }, [currentUser]);
39
+ const refresh = useCallback(async () => {
40
+ if (!currentUser) {
41
+ return;
42
+ }
43
+ const idToken = await currentUser.getIdToken(true);
44
+ return idToken;
45
+ }, [currentUser]);
46
+ useEffect(() => {
47
+ callback();
48
+ }, [callback]);
49
+ useEffect(() => {
50
+ const unsubscribe = onIdTokenChanged(auth, (user) => {
51
+ if (user) {
52
+ user.getIdToken().then((idToken) => {
53
+ setIdToken(idToken);
54
+ });
55
+ }
56
+ else {
57
+ setIdToken("");
58
+ }
59
+ });
60
+ return () => unsubscribe();
61
+ }, [auth]);
62
+ return {
63
+ idToken,
64
+ refresh
65
+ };
66
+ };
@@ -0,0 +1,16 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { FirebaseAuthTypes } from "@react-native-firebase/auth";
3
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
4
+ export type UseReauthenticateWitCredentialMutationVariables = {
5
+ credential: FirebaseAuthTypes.AuthCredential;
6
+ user: FirebaseAuthTypes.User;
7
+ };
8
+ /**
9
+ * Custom hook to create a mutation for re-authenticating a user with a given credential.
10
+ * This hook utilizes useMutation from React Query to manage the asynchronous re-authentication
11
+ * process with Firebase credentials. It omits the default "mutationKey" and "mutationFn" options.
12
+ *
13
+ * @param {Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitCredentialMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional mutation options excluding "mutationKey" and "mutationFn".
14
+ * @returns {UseMutationResult<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitCredentialMutationVariables, TContext>} A useMutation result object managing the loading, error, and result state of the re-authentication mutation.
15
+ */
16
+ export declare const useReauthenticateWitCredentialMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitCredentialMutationVariables, TContext>, "mutationKey" | "mutationFn">) => import("@tanstack/react-query").UseMutationResult<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitCredentialMutationVariables, TContext>;
@@ -0,0 +1,18 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { reauthenticateWithCredential } from "@react-native-firebase/auth";
3
+ import { REAUTHENTICATE_WITH_CREDENTIAL_MUTATION_KEY } from "./mutation-keys";
4
+ /**
5
+ * Custom hook to create a mutation for re-authenticating a user with a given credential.
6
+ * This hook utilizes useMutation from React Query to manage the asynchronous re-authentication
7
+ * process with Firebase credentials. It omits the default "mutationKey" and "mutationFn" options.
8
+ *
9
+ * @param {Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitCredentialMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional mutation options excluding "mutationKey" and "mutationFn".
10
+ * @returns {UseMutationResult<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitCredentialMutationVariables, TContext>} A useMutation result object managing the loading, error, and result state of the re-authentication mutation.
11
+ */
12
+ export const useReauthenticateWitCredentialMutation = (options = {}) => {
13
+ return useMutation({
14
+ ...options,
15
+ mutationFn: async ({ credential, user }) => reauthenticateWithCredential(user, credential),
16
+ mutationKey: REAUTHENTICATE_WITH_CREDENTIAL_MUTATION_KEY
17
+ });
18
+ };
@@ -0,0 +1,17 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { FirebaseAuthTypes, PopupRedirectResolver } from "@react-native-firebase/auth";
3
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
4
+ export type UseReauthenticateWitRedirectMutationVariables = {
5
+ authProvider: FirebaseAuthTypes.AuthProvider;
6
+ popupRedirectResolver?: PopupRedirectResolver;
7
+ user: FirebaseAuthTypes.User;
8
+ };
9
+ /**
10
+ * Custom hook that provides a mutation to reauthenticate a user with a given authentication provider using redirection.
11
+ * This hook uses the `useMutation` hook from the React Query library to handle async mutation logic.
12
+ *
13
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitRedirectMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional configuration object for the mutation. It provides the ability to pass options to customize the behavior of the mutation.
14
+ * @template TContext - The type of any additional context you wish to pass to the mutation.
15
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitRedirectMutationVariables, TContext>} A mutation result object containing methods and state of the mutation.
16
+ */
17
+ export declare const useReauthenticateWitRedirectMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitRedirectMutationVariables, TContext>, "mutationKey" | "mutationFn">) => import("@tanstack/react-query").UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitRedirectMutationVariables, TContext>;
@@ -0,0 +1,18 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { reauthenticateWithRedirect } from "@react-native-firebase/auth";
3
+ import { REAUTHENTICATE_WITH_REDIRECT_MUTATION_KEY } from "./mutation-keys";
4
+ /**
5
+ * Custom hook that provides a mutation to reauthenticate a user with a given authentication provider using redirection.
6
+ * This hook uses the `useMutation` hook from the React Query library to handle async mutation logic.
7
+ *
8
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitRedirectMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional configuration object for the mutation. It provides the ability to pass options to customize the behavior of the mutation.
9
+ * @template TContext - The type of any additional context you wish to pass to the mutation.
10
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseReauthenticateWitRedirectMutationVariables, TContext>} A mutation result object containing methods and state of the mutation.
11
+ */
12
+ export const useReauthenticateWitRedirectMutation = (options = {}) => {
13
+ return useMutation({
14
+ ...options,
15
+ mutationFn: async ({ authProvider, user, popupRedirectResolver }) => reauthenticateWithRedirect(user, authProvider, popupRedirectResolver),
16
+ mutationKey: REAUTHENTICATE_WITH_REDIRECT_MUTATION_KEY
17
+ });
18
+ };
@@ -0,0 +1,13 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { FirebaseAuthTypes } from "@react-native-firebase/auth";
3
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
4
+ export type UseSendEmailVerificationMutationVariables = {
5
+ user: FirebaseAuthTypes.User;
6
+ };
7
+ /**
8
+ * A custom hook to create a mutation for sending an email verification to a user using Firebase.
9
+ * This uses the `useMutation` hook from a query library and wraps it with specific configuration options.
10
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeReactNativeFirebase.NativeFirebaseError, UseSendEmailVerificationMutationVariables, TContext>, "queryKey" | "queryFn">} options - Configuration options for the mutation, excluding `queryKey` and `queryFn`.
11
+ * @returns {UseMutationResult<void, NativeReactNativeFirebase.NativeFirebaseError, UseSendEmailVerificationMutationVariables, TContext>} An object containing mutation state and functions for managing the mutation lifecycle.
12
+ */
13
+ export declare const useSendEmailVerificationMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseSendEmailVerificationMutationVariables, TContext>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseSendEmailVerificationMutationVariables, TContext>;
@@ -0,0 +1,16 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { sendEmailVerification } from "@react-native-firebase/auth";
3
+ import { SEND_EMAIL_VERIFICATION_MUTATION_KEY } from "./mutation-keys";
4
+ /**
5
+ * A custom hook to create a mutation for sending an email verification to a user using Firebase.
6
+ * This uses the `useMutation` hook from a query library and wraps it with specific configuration options.
7
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeReactNativeFirebase.NativeFirebaseError, UseSendEmailVerificationMutationVariables, TContext>, "queryKey" | "queryFn">} options - Configuration options for the mutation, excluding `queryKey` and `queryFn`.
8
+ * @returns {UseMutationResult<void, NativeReactNativeFirebase.NativeFirebaseError, UseSendEmailVerificationMutationVariables, TContext>} An object containing mutation state and functions for managing the mutation lifecycle.
9
+ */
10
+ export const useSendEmailVerificationMutation = (options = {}) => {
11
+ return useMutation({
12
+ ...options,
13
+ mutationFn: async ({ user }) => await sendEmailVerification(user),
14
+ mutationKey: SEND_EMAIL_VERIFICATION_MUTATION_KEY
15
+ });
16
+ };
@@ -0,0 +1,15 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { FirebaseAuthTypes } from "@react-native-firebase/auth";
3
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
4
+ export type UseSignInWitEmailAndPasswordMutationVariables = {
5
+ email: string;
6
+ password: string;
7
+ };
8
+ /**
9
+ * Custom hook to perform a sign-in operation using email and password with Firebase Authentication.
10
+ * It utilizes the `useMutation` hook to manage the asynchronous operation and its state.
11
+ *
12
+ * @param {Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseSignInWitEmailAndPasswordMutationVariables, TContext>, 'mutationKey' | 'mutationFn'>} options - Options to configure the mutation, excluding 'mutationKey' and 'mutationFn'.
13
+ * @returns {MutationResult} A mutation object containing the result of the sign-in process and helper functions.
14
+ */
15
+ export declare const useSignInWitEmailAndPasswordMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseSignInWitEmailAndPasswordMutationVariables, TContext>, "mutationKey" | "mutationFn">) => import("@tanstack/react-query").UseMutationResult<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseSignInWitEmailAndPasswordMutationVariables, TContext>;
@@ -0,0 +1,19 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { signInWithEmailAndPassword } from "@react-native-firebase/auth";
3
+ import { useAuth } from "./useAuth";
4
+ import { SIGN_IN_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY } from "./mutation-keys";
5
+ /**
6
+ * Custom hook to perform a sign-in operation using email and password with Firebase Authentication.
7
+ * It utilizes the `useMutation` hook to manage the asynchronous operation and its state.
8
+ *
9
+ * @param {Omit<UseMutationOptions<FirebaseAuthTypes.UserCredential, ReactNativeFirebase.NativeFirebaseError, UseSignInWitEmailAndPasswordMutationVariables, TContext>, 'mutationKey' | 'mutationFn'>} options - Options to configure the mutation, excluding 'mutationKey' and 'mutationFn'.
10
+ * @returns {MutationResult} A mutation object containing the result of the sign-in process and helper functions.
11
+ */
12
+ export const useSignInWitEmailAndPasswordMutation = (options = {}) => {
13
+ const firebaseAuth = useAuth();
14
+ return useMutation({
15
+ ...options,
16
+ mutationFn: async ({ email, password }) => signInWithEmailAndPassword(firebaseAuth, email, password),
17
+ mutationKey: SIGN_IN_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY
18
+ });
19
+ };
@@ -0,0 +1,14 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { FirebaseAuthTypes, PopupRedirectResolver } from "@react-native-firebase/auth";
3
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
4
+ export type UseSignInWitRedirectMutationVariables = {
5
+ authProvider: FirebaseAuthTypes.AuthProvider;
6
+ popupRedirectResolver?: PopupRedirectResolver;
7
+ };
8
+ /**
9
+ * Custom hook for handling Firebase authentication using sign-in with redirect functionality.
10
+ * This hook utilizes the `useMutation` mechanism to perform the sign-in operation.
11
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseSignInWitRedirectMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional configurations for the mutation, omitting the mutationKey and mutationFn properties.
12
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseSignInWitRedirectMutationVariables, TContext>} The result object from the useMutation hook, containing the mutation function and its current state.
13
+ */
14
+ export declare const useSignInWitRedirectMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseSignInWitRedirectMutationVariables, TContext>, "mutationKey" | "mutationFn">) => import("@tanstack/react-query").UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseSignInWitRedirectMutationVariables, TContext>;
@@ -0,0 +1,18 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { signInWithRedirect } from "@react-native-firebase/auth";
3
+ import { useAuth } from "./useAuth";
4
+ import { SIGN_IN_WITH_REDIRECT_MUTATION_KEY } from "./mutation-keys";
5
+ /**
6
+ * Custom hook for handling Firebase authentication using sign-in with redirect functionality.
7
+ * This hook utilizes the `useMutation` mechanism to perform the sign-in operation.
8
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseSignInWitRedirectMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Optional configurations for the mutation, omitting the mutationKey and mutationFn properties.
9
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseSignInWitRedirectMutationVariables, TContext>} The result object from the useMutation hook, containing the mutation function and its current state.
10
+ */
11
+ export const useSignInWitRedirectMutation = (options = {}) => {
12
+ const firebaseAuth = useAuth();
13
+ return useMutation({
14
+ ...options,
15
+ mutationFn: async ({ authProvider, popupRedirectResolver }) => signInWithRedirect(firebaseAuth, authProvider, popupRedirectResolver),
16
+ mutationKey: SIGN_IN_WITH_REDIRECT_MUTATION_KEY
17
+ });
18
+ };
@@ -0,0 +1,10 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
3
+ /**
4
+ * Custom hook for handling the sign-out mutation using Firebase authentication.
5
+ * It wraps the useMutation hook to provide a sign-out function with Firebase.
6
+ *
7
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, void, TContext>, "queryKey" | "queryFn">} options - Configuration options for the mutation, excluding "queryKey" and "queryFn".
8
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, void, TContext>} A mutation object for handling the sign-out process, including methods for mutating and state tracking.
9
+ */
10
+ export declare const useSignOutMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, void, TContext>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, void, TContext>;
@@ -0,0 +1,19 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { signOut } from "@react-native-firebase/auth";
3
+ import { SIGN_OUT_MUTATION_KEY } from "./mutation-keys";
4
+ import { useAuth } from "./useAuth";
5
+ /**
6
+ * Custom hook for handling the sign-out mutation using Firebase authentication.
7
+ * It wraps the useMutation hook to provide a sign-out function with Firebase.
8
+ *
9
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, void, TContext>, "queryKey" | "queryFn">} options - Configuration options for the mutation, excluding "queryKey" and "queryFn".
10
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, void, TContext>} A mutation object for handling the sign-out process, including methods for mutating and state tracking.
11
+ */
12
+ export const useSignOutMutation = (options = {}) => {
13
+ const firebaseAuth = useAuth();
14
+ return useMutation({
15
+ ...options,
16
+ mutationFn: async () => await signOut(firebaseAuth),
17
+ mutationKey: SIGN_OUT_MUTATION_KEY
18
+ });
19
+ };
@@ -0,0 +1,15 @@
1
+ import { UseMutationOptions } from "@tanstack/react-query";
2
+ import { FirebaseAuthTypes } from "@react-native-firebase/auth";
3
+ import { ReactNativeFirebase } from "@react-native-firebase/app";
4
+ export type UseUpdateProfileMutationVariables = {
5
+ displayName?: string;
6
+ user: FirebaseAuthTypes.User;
7
+ };
8
+ /**
9
+ * Custom hook to manage the mutation for updating a user's profile.
10
+ * Utilizes Firebase for updating the user's display name.
11
+ *
12
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseUpdateProfileMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Configuration options for the mutation, excluding mutationKey and mutationFn.
13
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseUpdateProfileMutationVariables, TContext>} The result of the mutation operation including statuses, data, and error information.
14
+ */
15
+ export declare const useUpdateProfileMutation: <TContext = unknown>(options?: Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseUpdateProfileMutationVariables, TContext>, "mutationKey" | "mutationFn">) => import("@tanstack/react-query").UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseUpdateProfileMutationVariables, TContext>;
@@ -0,0 +1,17 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import { updateProfile } from "@react-native-firebase/auth";
3
+ import { CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY } from "./mutation-keys";
4
+ /**
5
+ * Custom hook to manage the mutation for updating a user's profile.
6
+ * Utilizes Firebase for updating the user's display name.
7
+ *
8
+ * @param {Omit<UseMutationOptions<void, ReactNativeFirebase.NativeFirebaseError, UseUpdateProfileMutationVariables, TContext>, "mutationKey" | "mutationFn">} options - Configuration options for the mutation, excluding mutationKey and mutationFn.
9
+ * @returns {UseMutationResult<void, ReactNativeFirebase.NativeFirebaseError, UseUpdateProfileMutationVariables, TContext>} The result of the mutation operation including statuses, data, and error information.
10
+ */
11
+ export const useUpdateProfileMutation = (options = {}) => {
12
+ return useMutation({
13
+ ...options,
14
+ mutationFn: async ({ displayName, user }) => await updateProfile(user, { displayName }),
15
+ mutationKey: CREATE_USER_WITH_EMAIL_AND_PASSWORD_MUTATION_KEY
16
+ });
17
+ };
@@ -59,7 +59,6 @@ export type FirebaseContextProviderEmulators = {
59
59
  * @inline
60
60
  */
61
61
  export type FirebaseContextProviderProps = PropsWithChildren & {
62
- platform: "Web" | "ReactNative";
63
62
  /**
64
63
  * Defines configuration for firebase emulators
65
64
  */
@@ -67,7 +66,7 @@ export type FirebaseContextProviderProps = PropsWithChildren & {
67
66
  /**
68
67
  * Configuration options for Firebase initialization. {@link https://firebase.google.com/docs/web/setup#config-object | Learn about the Firebase config object}
69
68
  */
70
- options: ReactNativeFirebase.FirebaseAppOptions;
69
+ options?: ReactNativeFirebase.FirebaseAppOptions;
71
70
  /**
72
71
  * Flag indicating whether Firebase Auth should be enabled.
73
72
  */