MCPcopy Index your code
hub / github.com/FirebaseExtended/reactfire / ClaimsCheck

Function ClaimsCheck

src/auth.tsx:203–231  ·  view source on GitHub ↗
({ user, fallback, children, requiredClaims }: ClaimsCheckProps)

Source from the content-addressed store, hash-verified

201 * Meant for Concurrent mode only (`<FirebaseAppProvider suspense=true />`). [More detail](https://github.com/FirebaseExtended/reactfire/issues/325#issuecomment-827654376).
202 */
203export function ClaimsCheck({ user, fallback, children, requiredClaims }: ClaimsCheckProps) {
204 const { data } = useIdTokenResult(user, false);
205 const { claims } = data;
206 const missingClaims: { [key: string]: { expected: string; actual: string | undefined } } = {};
207
208 const suspenseMode = useSuspenseEnabledFromConfigAndContext();
209 if (!suspenseMode) {
210 console.warn(
211 'ClaimsCheck is deprecated and only works when ReactFire is in experimental Suspense Mode. Use useSigninCheck or set suspense={true} in FirebaseAppProvider if you want to use this component.'
212 );
213 }
214
215 if (requiredClaims) {
216 Object.keys(requiredClaims).forEach((claim) => {
217 if (requiredClaims[claim] !== claims[claim]) {
218 missingClaims[claim] = {
219 expected: requiredClaims[claim],
220 actual: claims[claim]?.toString(),
221 };
222 }
223 });
224 }
225
226 if (Object.keys(missingClaims).length === 0) {
227 return <>{children}</>;
228 } else {
229 return <>{fallback}</>;
230 }
231}
232
233/**
234 * @deprecated Use `useSigninCheck` instead

Callers

nothing calls this directly

Calls 2

useIdTokenResultFunction · 0.85

Tested by

no test coverage detected