AppProvider(props, context?): null | ReactElement<any, any>
Os componentes aninhados em AppProvider podem acessar seu App Services App e usar os hooks AppProvider .
Props
Todas as propriedades de AppConfiguration podem ser passadas como props para AppProvider.
Configurar o AppProvider
Para configurar seu cliente de aplicativo, passe a string do ID do aplicativo para a propriedade id do AppProvider. Envolva todos os componentes que precisem acessar o aplicativo com AppProvider.
import React from 'react'; import {AppProvider} from '@realm/react'; function AppWrapper() { return ( <View> <AppProvider id={APP_ID}> <MyApp /> </AppProvider> </View> ); }
Você pode criar várias instâncias do cliente de aplicativo para se conectar a vários aplicativos. Todas as instâncias de cliente de aplicativo que compartilham a mesma ID de aplicativo usam a mesma conexão subjacente.
Importante
Alterando uma configuração de aplicativo após inicializar o aplicativo
Alterado na versão realm@12.6.0: baseUrl não é armazenado em cache
Quando você inicializa o cliente do aplicativo, a configuração é armazenada em cache internamente. A tentativa de "fechar" e, em seguida, reabrir uma aplicação com uma configuração alterada dentro do mesmo processo não tem efeito. O cliente continua usando a configuração em cache.
Iniciando com React Native SDK versão 12.6.0, o baseUrl no AppConfiguration não é armazenado em cache. Isso significa que você pode alterar o baseUrl e o cliente da aplicação utilizará a configuração atualizada. Em versões anteriores do SDK, as alterações no baseUrl em uma configuração de aplicativo em cache não têm efeito.
Hooks usados com o AppProvider
useAuth()
useAuth(): UseAuth
useAuth tem um método de autenticação para cada provedor de autenticação do App Services.
Resultado
result: AuthResult
Resultado da operação do hook de autenticação. Por exemplo, result.operation fornece o nome da operação atual.
Valores de enumeração
state. Pode ser "não iniciado", "pendente", "sucesso" e "erro".operation. Para obter uma lista de todos os nomes de operação, consulte a documentação da API.pending. Pode sertrueoufalse.success. Pode sertrueoufalse.error. Objeto baseado em erro ou indefinido.
logIn(credenciais)
logIn(credentials: Realm.Credentials): void
Parâmetros
credentials. Uma credencial Realm fornecida por qualquer autenticação Realm compatível.
Exemplo
Conecta um usuário com qualquer mecanismo de autenticação suportado pelo Realm. Se chamado quando um usuário estiver conectado, o usuário atual mudará para o novo usuário. Normalmente, é melhor usar métodos de login mais específicos.
const {logIn, result} = useAuth(); useEffect(() => logIn(Realm.Credentials.anonymous()), []); if(result.pending) { return (<LoadingSpinner/>) } if(result.error) { return (<ErrorComponent/>) } if(result.success) { return (<SuccessComponent/>) } //...
logInWithAnonymous()
logInWithAnonymous(): void
Exemplo
Faça login com o provedor de autenticação anônima.
const {logInWithAnonymous, result} = useAuth(); const performLogin = () => { logInWithAnonymous(); };
loginWithApiKey(key)
logInWithApiKey(key: string): void
Parâmetros
key. Uma string vinculada a um usuário do App Services.
Exemplo
Faça login com uma chave de API.
const {logInWithApiKey, result} = useAuth(); const performLogin = () => { const key = getApiKey(); // user defined function logInWithApiKey(key); };
logInWithEmailPassword (credenciais)
logInWithEmailPassword(credentials: { email: string; password: string; }): void
Parâmetros
credentials. Um objeto com camposemailepassword.
Exemplo
Faça login com e-mail/senha.
const {logInWithEmailPassword, result} = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performLogin = () => { logInWithEmailPassword({email, password}); };
logInWithJWT (credenciais)
logInWithJWT(token: string): void
Parâmetros
credentials. Uma representação de string do JSON web token de um usuário.
Exemplo
Faça login com um JSON web token (JWT).
const {logInWithJWT, result} = useAuth(); const performLogin = () => { const token = authorizeWithCustomerProvider(); // user defined function logInWithJWT(token); };
logInWithGoogle (credenciais)
logInWithGoogle(credentials: { idToken: string; } | { authCode: string; }): void;
Parâmetros
credentials. Um objeto com um campoidTokenouauthCodeque deve conter o token de string que você obtém dos Serviços de Identidade do Google.
Exemplo
Faça login com o Google.
const {logInWithGoogle, result} = useAuth(); const performLogin = () => { const token = getGoogleToken(); // user defined function logInWithGoogle({idToken: token}); };
loginWithApple(idToken)
logInWithApple(idToken: string): void;
Parâmetros
idToken. Uma string que você obtém do Apple SDK.
Exemplo
Faça login com a Apple.
const {logInWithApple, result} = useAuth(); const performLogin = () => { const token = getAppleToken(); // user defined function logInWithApple(token); };
logInWithFacebook(accessToken)
logInWithFacebook(accessToken: string): void;
Parâmetros
accessToken. Uma string que você obtém do SDK do Facebook.
Exemplo
Faça login com o Facebook.
const {logInWithFacebook, result} = useAuth(); const performLogin = () => { const token = getFacebookToken(); // user defined function logInWithFacebook(token); };
logInWithFunction (carga útil)
logInWithFunction<PayloadType extends Record<string, unknown>>(payload: PayloadType): void;
Parâmetros
payload. Um objeto que contém as informações do usuário que você deseja passar para a função do App Services que processa solicitações de login.
Exemplo
Faça login com uma função personalizada.
const {logInWithFunction, result} = useAuth(); const performLogin = () => { const customPayload = getAuthParams(); // user defined arguments logInWithFunction(customPayload); };
logOut()
logOut(): void;
Exemplo
Desconecta o usuário atual.
const {logOut, result} = useEmailPasswordAuth(); const performLogout = () => { logOut(); }
useEmailPasswordAuth()
result: AuthResult
Resultado da operação do hook de autenticação. Por exemplo, result.operation fornece o nome da operação atual.
Valores de enumeração
state. Pode ser "não iniciado", "pendente", "sucesso" e "erro".operation. Para obter uma lista de todos os nomes de operação, consulte a documentação da API.pending. Pode sertrueoufalse.success. Pode sertrueoufalse.error. Objeto baseado em erro ou indefinido.
logIn(credenciais)
logIn(credentials: { email: string; password: string }): void;
Parâmetros
credentials. Um objeto que contém as propriedadesemailepassword.
Exemplo
Registra um usuário utilizando um e-mail e senha. Você também pode ligar para logIn(Realm.Credentials.emailPassword(email, password)). Retorna uma instância Realm.User do usuário conectado.
const {logIn, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performLogin = () => { logIn({email, password}); }; if(result.pending) { return (<LoadingSpinner/>) } if(result.error) { return (<ErrorComponent/>) } if(result.success) { return (<SuccessComponent/>) } //...
logOut()
logOut(): void;
Exemplo
Desconecta o usuário atual.
const {logOut, result} = useEmailPasswordAuth(); const performLogout = () => { logOut(); }
registrar(args)
register(args: { email: string; password: string }): void;
Parâmetros
args. Um objeto que contém as propriedadesemailepassword.
Exemplo
Registra um novo usuário. Requer um e-mail de usuário e senha.
const {register, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performRegister = () => { register({email, password}); };
confirm(args)
confirm(args: { token: string; tokenId: string }): void;
Parâmetros
args. Um objeto que contém as propriedadestokenetokenId.
Exemplo
Confirma uma conta de usuário. Exige um token e tokenId.
const {confirm, result} = useEmailPasswordAuth(); const performConfirmation = () => { confirm({token, tokenId}); };
reenviarConfirmationEmail(args)
resendConfirmationEmail(args: { email: string }): void;
Parâmetros
args. Um objeto que contém uma propriedadeemail.
Exemplo
Reenvia um e-mail de confirmação.
const {resendConfirmationEmail, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performResendConfirmationEmail = () => { resendConfirmationEmail({email}); };
retryCustomConfirmation(args)
retryCustomConfirmation(args: { email: string }): void;
Parâmetros
args. Um objeto que contém uma propriedadeemail.
Exemplo
Tenta novamente a confirmação com uma função personalizada.
const {retryCustomConfirmation, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performRetryCustomConfirmation = () => { retryCustomConfirmation({email}); };
sendResetPasswordEmail(args)
sendResetPasswordEmail(args: { email: string }): void;
Parâmetros
args. Um objeto que contém uma propriedadeemail.
Exemplo
Envia um e-mail de redefinição de senha.
const {sendResetPasswordEmail, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performSendResetPasswordEmail = () => { sendResetPasswordEmail({email}); };
reinício da senha (args)
resetPassword(args: { token: string; tokenId: string; password: string }): void;
Parâmetros
args. Um objeto que contém as propriedadestoken,tokenIdepassword.
Exemplo
Redefine a senha de um usuário.
const {resetPassword, result} = useEmailPasswordAuth(); const [password, setPassword] = useState(''); const performResetPassword = () => { resetPassword({token, tokenId, password}); };
callResetPasswordFunction(args, restArgs)
callResetPasswordFunction<Args extends unknown[] = []>( args: { email: string; password: string; }, ...restArgs: Args ): void;
Parâmetros
args. Um objeto que contém as propriedadesemailepassword.restArgs. Argumentos adicionais que você precisa passar para sua função de redefinição de senha personalizada.
Exemplo
Chama a função de redefinição de senha do backend do App Services. Pode passar argumentos para a função conforme necessário.
const {callResetPasswordFunction, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performResetPassword = () => { callResetPasswordFunction({email, password}, "extraArg1", "extraArg2"); };
useApp()
useApp<FunctionsFactoryType, CustomDataType>(): Realm.App<FunctionsFactoryType, CustomDataType>
Exemplo
O hook useApp() fornece acesso a uma instância do Realm.App .
import React from 'react'; import {useApp} from '@realm/react';
function MyApp() { const app = useApp(); // Proceed to app logic... }
Devoluções
Realm.AppUma instância doRealm.Appatual criado porAppProvider.