AppProvider (@realm/react)
Nesta página
- Props
- Configurar o AppProvider
- Hooks usados com o AppProvider
- useAuth()
- Resultado
- logIn(credenciais)
- logInWithAnonymous()
- loginWithApiKey(key)
- logInWithEmailPassword (credenciais)
- logInWithJWT (credenciais)
- logInWithGoogle (credenciais)
- loginWithApple(idToken)
- logInWithFacebook(accessToken)
- logInWithFunction (carga útil)
- logOut()
- useEmailPasswordAuth()
- logIn(credenciais)
- logOut()
- registrar(args)
- confirm(args)
- reenviarConfirmationEmail(args)
- retryCustomConfirmation(args)
- sendResetPasswordEmail(args)
- reinício da senha (args)
- callResetPasswordFunction(args, restArgs)
- useApp()
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 sertrue
oufalse
.success
. Pode sertrue
oufalse
.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 camposemail
epassword
.
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 campoidToken
ouauthCode
que 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 sertrue
oufalse
.success
. Pode sertrue
oufalse
.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 propriedadesemail
epassword
.
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 propriedadesemail
epassword
.
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 propriedadestoken
etokenId
.
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
,tokenId
epassword
.
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 propriedadesemail
epassword
.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.App
Uma instância doRealm.App
atual criado porAppProvider
.