AppProvider(props, context?): null | ReactElement<any, any>
AppProviderApp Services AppAppProvider{0 にネストされたコンポーネントは にアクセスし、 フックを使用できます。
機能
AppConfigurationのすべてのプロパティは、プロパティとしてAppProviderに渡すことができます。
AppProvider の構成
アプリクライアントを設定するには、アプリ ID string をAppProviderのidプロンプトに渡します。 アプリにアクセスするために必要なコンポーネントをAppProviderでラップします。
import React from 'react'; import {AppProvider} from '@realm/react'; function AppWrapper() { return ( <View> <AppProvider id={APP_ID}> <MyApp /> </AppProvider> </View> ); }
複数のアプリに接続するには、複数のアプリクライアントインスタンスを作成します。 同じアプリ ID を共有するすべてのアプリクライアント インスタンスは、同じ基礎の接続を使用します。
重要
アプリ初期化後のアプリ構成の変更
バージョンrealm@12.6.0での変更: baseUrlはキャッシュされません
App クライアントを初期化すると、構成は内部的にキャッシュされます。 同じプロセス内で変更された構成でアプリを「閉じ」、その後再度開かしようとしても効果はありません。 クライアントはキャッシュされた構成を引き続き使用します。
React Native SDK バージョン12.6.0 以降では、baseUrl 内のAppConfiguration はキャッシュされ ません 。つまり、 baseUrlを変更すると、アプリクライアントは更新された構成を使用します。 以前の SDK バージョンでは、キャッシュされたアプリ構成でbaseUrlを変更しても効果はありません。
AppProvider で使用されるフック
useAuth()
useAuth(): UseAuth
useAuth には、すべての App Services 認証プロバイダーの認証方法があります。
結果
result: AuthResult
認証フック操作 の結果。 たとえば、 result.operationは現在の操作の名前を示します。
Enum values
state。 「開始なし」、「保留中」、「成功」、「エラー」を指定できます。operation。すべての操作名のリストについては、 API ドキュメント を参照してください。pending。trueまたはfalseになります。success。trueまたはfalseになります。error。エラーベースのオブジェクトまたは未定義。
logIn(credentials)
logIn(credentials: Realm.Credentials): void
パラメーター
credentials。サポートされている Realm 認証によって提供される Realm 認証情報。
例
Realm でサポートされている認証メカニズムを持つユーザーをログインします。 ユーザーがログインしたときに呼び出されると、現在のユーザーが新しいユーザーに切り替わります。 通常、より具体的なログイン方法を使用することをお勧めします。
const {logIn, result} = useAuth(); useEffect(() => logIn(Realm.Credentials.anonymous()), []); if(result.pending) { return (<LoadingSpinner/>) } if(result.error) { return (<ErrorComponent/>) } if(result.success) { return (<SuccessComponent/>) } //...
logInWithAnyごと()
logInWithAnonymous(): void
例
匿名認証プロバイダーにログインします。
const {logInWithAnonymous, result} = useAuth(); const performLogin = () => { logInWithAnonymous(); };
logInWithApiKey(key)
logInWithApiKey(key: string): void
パラメーター
key。 App Services ユーザーにリンクされた string。
例
API キーでログインします。
const {logInWithApiKey, result} = useAuth(); const performLogin = () => { const key = getApiKey(); // user defined function logInWithApiKey(key); };
logInWithEmailPassword(credentials)
logInWithEmailPassword(credentials: { email: string; password: string; }): void
パラメーター
credentials。emailとpasswordフィールドを持つオブジェクト。
例
メール/パスワードを使用してログインします。
const {logInWithEmailPassword, result} = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performLogin = () => { logInWithEmailPassword({email, password}); };
logInWithJWT(認証情報)
logInWithJWT(token: string): void
パラメーター
credentials。ユーザーのstring のJSON web token 表現。
例
JSON web token ( JSON web token )でログインします。
const {logInWithJWT, result} = useAuth(); const performLogin = () => { const token = authorizeWithCustomerProvider(); // user defined function logInWithJWT(token); };
logInWithGoogle(credentials)
logInWithGoogle(credentials: { idToken: string; } | { authCode: string; }): void;
パラメーター
credentials。 Google Identity Services から取得した string トークンを含む必要があるidTokenまたはauthCodeフィールドを持つオブジェクト。
例
Google でログインします。
const {logInWithGoogle, result} = useAuth(); const performLogin = () => { const token = getGoogleToken(); // user defined function logInWithGoogle({idToken: token}); };
logInWithApple(idToken)
logInWithApple(idToken: string): void;
パラメーター
idToken。 Apple SDK から取得した string。
例
Apple でログインします。
const {logInWithApple, result} = useAuth(); const performLogin = () => { const token = getAppleToken(); // user defined function logInWithApple(token); };
logInWithFacebook(accessToken)
logInWithFacebook(accessToken: string): void;
パラメーター
accessToken。 Facebook SDK から取得した string。
例
Facebook でログインします。
const {logInWithFacebook, result} = useAuth(); const performLogin = () => { const token = getFacebookToken(); // user defined function logInWithFacebook(token); };
logInWithFunction(ペイロード)
logInWithFunction<PayloadType extends Record<string, unknown>>(payload: PayloadType): void;
パラメーター
payload。ログイン リクエストを処理する App Services 関数に渡すユーザー情報を含むオブジェクト。
例
カスタム関数でログインします。
const {logInWithFunction, result} = useAuth(); const performLogin = () => { const customPayload = getAuthParams(); // user defined arguments logInWithFunction(customPayload); };
logOut()
logOut(): void;
例
現在のユーザーをログアウトします。
const {logOut, result} = useEmailPasswordAuth(); const performLogout = () => { logOut(); }
useEmailPasswordAuth()
result: AuthResult
認証フック操作 の結果。 たとえば、 result.operationは現在の操作の名前を示します。
Enum values
state。 「開始なし」、「保留中」、「成功」、「エラー」を指定できます。operation。すべての操作名のリストについては、 API ドキュメント を参照してください。pending。trueまたはfalseになります。success。trueまたはfalseになります。error。エラーベースのオブジェクトまたは未定義。
logIn(credentials)
logIn(credentials: { email: string; password: string }): void;
パラメーター
credentials。emailとpasswordプロパティを含むオブジェクト。
例
メールとパスワードを使用してユーザーをログインします。 logIn(Realm.Credentials.emailPassword(email, password))を呼び出すこともできます。 ログインユーザーのRealm.Userインスタンスを返します。
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;
例
現在のユーザーをログアウトします。
const {logOut, result} = useEmailPasswordAuth(); const performLogout = () => { logOut(); }
register(args)
register(args: { email: string; password: string }): void;
パラメーター
args。emailとpasswordプロパティを含むオブジェクト。
例
新しいユーザーを登録します。 ユーザーのメールとパスワードが必要です。
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;
パラメーター
args。tokenとtokenIdプロパティを含むオブジェクト。
例
ユーザー アカウントを確認します。 tokenとtokenIdが必要です。
const {confirm, result} = useEmailPasswordAuth(); const performConfirmation = () => { confirm({token, tokenId}); };
resendConfirmationEmail(args)
resendConfirmationEmail(args: { email: string }): void;
パラメーター
args。emailプロパティを含むオブジェクト。
例
確認メールを再送信します。
const {resendConfirmationEmail, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performResendConfirmationEmail = () => { resendConfirmationEmail({email}); };
retryCustomConfirmation(args)
retryCustomConfirmation(args: { email: string }): void;
パラメーター
args。emailプロパティを含むオブジェクト。
例
カスタム関数で確認を再試行します。
const {retryCustomConfirmation, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performRetryCustomConfirmation = () => { retryCustomConfirmation({email}); };
sendResetPasswordEmail(args)
sendResetPasswordEmail(args: { email: string }): void;
パラメーター
args。emailプロパティを含むオブジェクト。
例
パスワード リセット メールを送信します。
const {sendResetPasswordEmail, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performSendResetPasswordEmail = () => { sendResetPasswordEmail({email}); };
resetPassword(args)
resetPassword(args: { token: string; tokenId: string; password: string }): void;
パラメーター
args。token、tokenId、passwordプロパティを含むオブジェクト。
例
ユーザーのパスワードをリセットします。
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;
パラメーター
args。emailとpasswordプロパティを含むオブジェクト。restArgs。カスタム リセット パスワード関数に渡す必要がある追加の引数。
例
App Services バックエンドのパスワード リセット機能を呼び出します。 必要に応じて、 関数に引数を渡すことができます。
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>
例
useApp()フックはRealm.Appインスタンスへのアクセスを提供します。
import React from 'react'; import {useApp} from '@realm/react';
function MyApp() { const app = useApp(); // Proceed to app logic... }
戻り値
Realm.AppAppProviderによって作成された現在のRealm.Appのインスタンス。