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 | undefinedO 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 defallbackcom 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.UserUma instância do usuário do Realm atualmente autenticado.