ユーザー ID のリンク - Java SDK
項目一覧
Atlas Device SDK は非推奨です。 詳細については、 の廃止ページを参照してください。
Realm は、ユーザーをアプリにログインするためのの多くの認証プロバイダを提供します。 各プロバイダーは一意のユーザー ID を作成します。 Realm を使用すると、複数の認証情報を 1 つのユーザー ID にマージできます。
ユーザーがログインする前に、認証情報をリンクする必要があります。 認証情報を使用してユーザーをログインすると、その認証情報をリンクできなくなります。 また、複数のメール/パスワードの認証情報をリンクすることはできません。
例
匿名ログインを提供するアプリケーションを検討してください。これにより、ユーザーは登録せずにアプリを探索できます。 ユーザーがアプリケーションを引き続き使用する場合は、別の認証プロバイダを使用して永続的なアカウントを作成できます。 Realm は新しい User
オブジェクトを作成します。 その後、アプリは新しい ID を現在のユーザーにリンクできます。
注意
メール/パスワード認証の設定方法によっては、新しいアカウントが作成されリンクされる前に追加の手順(メールアドレスの確認など)が行われる場合があります。
linkCredentials()またはlinkCredentialsAsync( ) を使用して ID をリンクします。 これにより、新しいユーザー ID がログインユーザーオブジェクトにリンクされます。
// The user has previously created an email/password account user.linkCredentialsAsync( Credentials.emailPassword(email, password), result -> { if (result.isSuccess()) { Log.v("EXAMPLE", "Successfully linked existing user " + "identity with email/password user: " + result.get()); } else { Log.e("EXAMPLE", "Failed to link user identities with: " + result.getError()); } });
// The user has previously created an email/password account user.linkCredentialsAsync( Credentials.emailPassword( email, password ) ) { result -> if (result.isSuccess) { Log.v( "EXAMPLE", "Successfully linked existing user identity " + "with email/password user: ${result.get()}" ) } else { Log.e( "EXAMPLE", "Failed to link user identities with: ${result.error}" ) } }