UserProvider (@realm/react)
UserProvider(props): null | ReactElement<any, any>
Os componentes aninhados em UserProvider
podem acessar o objeto de usuário conectado e usar os hooks UserProvider
.
Props
fallback?: React.ComponentType<unknown> | React.ReactElement | null | undefined
O componente de contingência a ser renderizado se não houver nenhum usuário autorizado. Isso pode ser usado para renderizar uma tela de login ou lidar com a autenticação.
Configurar o UserProvider
Os componentes envolvidos peloAppProvider podem acessar os hooks useApp e useAuth . Esses componentes só serão renderizados se conectar com êxito ao AppProvider
do App Services.
Os componentes agrupados pelo UserProvider podem acessar usuários autenticados com o gancho useUser . Esses componentes só serão renderizados se o seu aplicativo tiver um usuário autenticado.
Para configurar a autenticação do usuário:
Encerre todos os componentes que precisam acessar o App Services em
AppProvider
.Dentro do
AppProvider
, encerre todos os componentes que você deseja ter acesso como usuário autenticado comUserProvider
.Em
UserProvider
, inclua um acessório defallback
com um componente que registra um usuário. O aplicativo renderiza este componente se não houver nenhum usuário autenticado.
import React from 'react'; import {AppProvider, UserProvider} from '@realm/react'; // Fallback log in component that's defined in another file. import {LogIn} from './Login'; export const LoginExample = () => { return ( <ScrollView> <AppProvider id={APP_ID}> {/* If there is no authenticated user, mount the `fallback` component. When user successfully authenticates, the app unmounts the `fallback` component (in this case, the `LogIn` component). */} <UserProvider fallback={LogIn}> {/* Components inside UserProvider have access to the user. These components only mount if there's an authenticated user. */} <UserInformation /> </UserProvider> </AppProvider> </ScrollView> ); };
Hooks do UserProvider
useUser()
useUser<FunctionsFactoryType, CustomDataType, UserProfileDataType>(): Realm.User<FunctionsFactoryType, CustomDataType, UserProfileDataType>
O hook useUser()
fornece acesso ao usuário conectado. Por exemplo, você pode usar useUser()
para desconectar o usuário atual.
Quando ocorrem alterações no objeto de usuário, esse hook renderiza novamente seu componente pai. Por exemplo, se você chamar user.refreshCustomData
para obter dados de usuário personalizados atualizados, o componente pai useUser()
será renderizado novamente.
function UserInformation() { const user = useUser(); const {logOut} = useAuth(); const performLogout = () => { logOut(); }; // Add UI for logging out... }
Devoluções
Realm.User
Uma instância do usuário do Realm atualmente autenticado.