Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

AppProvider (@realm/ React )

項目一覧

  • 機能
  • AppProvider の構成
  • AppProvider で使用されるフック
  • useAuth()
  • 結果
  • logIn(credentials)
  • logInWithAnyごと()
  • logInWithApiKey(key)
  • logInWithEmailPassword(credentials)
  • logInWithJWT(認証情報)
  • logInWithGoogle(credentials)
  • logInWithApple(idToken)
  • logInWithFacebook(accessToken)
  • logInWithFunction(ペイロード)
  • logOut()
  • useEmailPasswordAuth()
  • logIn(credentials)
  • logOut()
  • register(args)
  • confirm(args)
  • resendConfirmationEmail(args)
  • retryCustomConfirmation(args)
  • sendResetPasswordEmail(args)
  • resetPassword(args)
  • CallResetPasswordFunction(args,restArgs)
  • useApp()
型署名
AppProvider(props, context?): null | ReactElement<any, any>

AppProviderApp Services AppAppProvider{0 にネストされたコンポーネントは にアクセスし、 フックを使用できます。

AppConfigurationのすべてのプロパティは、プロパティとしてAppProviderに渡すことができます。

アプリクライアントを設定するには、アプリ ID string をAppProvideridプロンプトに渡します。 アプリにアクセスするために必要なコンポーネントを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を変更しても効果はありません。

型署名
useAuth(): UseAuth

useAuth には、すべての App Services 認証プロバイダーの認証方法があります。

型署名
result: AuthResult

認証フック操作 の結果。 たとえば、 result.operationは現在の操作の名前を示します。

Enum values

  • state。 「開始なし」、「保留中」、「成功」、「エラー」を指定できます。

  • operation。すべての操作名のリストについては、 API ドキュメント を参照してください。

  • pendingtrueまたはfalseになります。

  • successtrueまたはfalseになります。

  • error。エラーベースのオブジェクトまたは未定義。

型署名
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/>)
}
//...
型署名
logInWithAnonymous(): void

匿名認証プロバイダーにログインします。

const {logInWithAnonymous, result} = useAuth();
const performLogin = () => {
logInWithAnonymous();
};
型署名
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: {
email: string;
password: string;
}): void

パラメーター

  • credentialsemailpasswordフィールドを持つオブジェクト。

メール/パスワードを使用してログインします。

const {logInWithEmailPassword, result} = useAuth();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const performLogin = () => {
logInWithEmailPassword({email, password});
};
型署名
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: {
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: string): void;

パラメーター

  • idToken。 Apple SDK から取得した string。

Apple でログインします。

const {logInWithApple, result} = useAuth();
const performLogin = () => {
const token = getAppleToken(); // user defined function
logInWithApple(token);
};
型署名
logInWithFacebook(accessToken: string): void;

パラメーター

  • accessToken。 Facebook SDK から取得した string。

Facebook でログインします。

const {logInWithFacebook, result} = useAuth();
const performLogin = () => {
const token = getFacebookToken(); // user defined function
logInWithFacebook(token);
};
型署名
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(): void;

現在のユーザーをログアウトします。

const {logOut, result} = useEmailPasswordAuth();
const performLogout = () => {
logOut();
}
型署名
result: AuthResult

認証フック操作 の結果。 たとえば、 result.operationは現在の操作の名前を示します。

Enum values

  • state。 「開始なし」、「保留中」、「成功」、「エラー」を指定できます。

  • operation。すべての操作名のリストについては、 API ドキュメント を参照してください。

  • pendingtrueまたはfalseになります。

  • successtrueまたはfalseになります。

  • error。エラーベースのオブジェクトまたは未定義。

型署名
logIn(credentials: { email: string; password: string }): void;

パラメーター

  • credentialsemailpasswordプロパティを含むオブジェクト。

メールとパスワードを使用してユーザーをログインします。 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(): void;

現在のユーザーをログアウトします。

const {logOut, result} = useEmailPasswordAuth();
const performLogout = () => {
logOut();
}
型署名
register(args: { email: string; password: string }): void;

パラメーター

  • argsemailpasswordプロパティを含むオブジェクト。

新しいユーザーを登録します。 ユーザーのメールとパスワードが必要です。

const {register, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const performRegister = () => {
register({email, password});
};
型署名
confirm(args: { token: string; tokenId: string }): void;

パラメーター

  • argstokentokenIdプロパティを含むオブジェクト。

ユーザー アカウントを確認します。 tokentokenIdが必要です。

const {confirm, result} = useEmailPasswordAuth();
const performConfirmation = () => {
confirm({token, tokenId});
};
型署名
resendConfirmationEmail(args: { email: string }): void;

パラメーター

  • argsemailプロパティを含むオブジェクト。

確認メールを再送信します。

const {resendConfirmationEmail, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const performResendConfirmationEmail = () => {
resendConfirmationEmail({email});
};
型署名
retryCustomConfirmation(args: { email: string }): void;

パラメーター

  • argsemailプロパティを含むオブジェクト。

カスタム関数で確認を再試行します。

const {retryCustomConfirmation, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const performRetryCustomConfirmation = () => {
retryCustomConfirmation({email});
};
型署名
sendResetPasswordEmail(args: { email: string }): void;

パラメーター

  • argsemailプロパティを含むオブジェクト。

パスワード リセット メールを送信します。

const {sendResetPasswordEmail, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const performSendResetPasswordEmail = () => {
sendResetPasswordEmail({email});
};
型署名
resetPassword(args: { token: string; tokenId: string; password: string }): void;

パラメーター

  • argstokentokenIdpasswordプロパティを含むオブジェクト。

ユーザーのパスワードをリセットします。

const {resetPassword, result} = useEmailPasswordAuth();
const [password, setPassword] = useState('');
const performResetPassword = () => {
resetPassword({token, tokenId, password});
};
型署名
callResetPasswordFunction<Args extends unknown[] = []>(
args: {
email: string;
password: string;
},
...restArgs: Args
): void;

パラメーター

  • argsemailpasswordプロパティを含むオブジェクト。

  • restArgs。カスタム リセット パスワード関数に渡す必要がある追加の引数。

App Services バックエンドのパスワード リセット機能を呼び出します。 必要に応じて、 関数に引数を渡すことができます。

const {callResetPasswordFunction, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const performResetPassword = () => {
callResetPasswordFunction({email, password}, "extraArg1", "extraArg2");
};
型署名
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.App AppProviderによって作成された現在のRealm.Appのインスタンス。

戻る

RealmProvider (@realm/ React )