Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

ユーザーの作成と削除 - Swift SDK

項目一覧

  • ユーザーの作成
  • ユーザーを削除する
  • Async/Await によるユーザーの削除
  • 完了ハンドラーによるユーザーの削除

ほとんどの認証方法で、Atlas App Services はユーザーが初めて認証するときにユーザー オブジェクトを自動的に作成します。 例外は、メール/パスワード認証です。 メール/パスワード認証を使用する場合は、ユーザーが App Services App で認証する前に、ユーザーを登録して確認する必要があります。

Tip

Appleアカウントの削除要件

Apple は、アプリケーションが App Store App Storeリストされることを要求しています 。 アカウントを作成したすべてのユーザーに、アカウントを削除するオプションを提供する必要があります。メールや パスワード認証など、ユーザーを手動で登録する必要がある認証方法を使用する場合でも、Apple でサインインなどのユーザーを自動的に作成する認証方法を使用する場合でも、 年 6 月30 日までに ユーザー アカウントの削除 を実装する必要があります。 。2022

バージョン 10.23.0 の新機能

ユーザー オブジェクトでdeleteメソッドを呼び出して、アプリからユーザー オブジェクトを削除できます。 これにより、ローカル データがクリアされるだけでなく、サーバーから オブジェクトが削除されます。

重要

ユーザーを削除すると、関連するメタデータを含む場合はユーザー オブジェクトのみが削除されます。 これは、アプリケーションからカスタム ユーザー データまたはユーザーが入力したデータを削除することはありません。 Apple はデータの保持と削除のポリシーを公開することを要求します アプリケーションのカスタマーにメッセージを表示し、ユーザー データの削除をリクエストする方法を提供します。追加のユーザー データを収集する場合は、そのデータを削除するために独自のメソッドまたはプロセスを実装する必要があります。

アプリケーションが Apple の async/await 構文を使用する場合:

func testAsyncDeleteUser() async throws {
// Logging in using anonymous authentication creates a user object
let syncUser = try await app.login(credentials: Credentials.anonymous)
// Now we have a user, and the total users in the app = 1
XCTAssertNotNil(syncUser)
XCTAssertEqual(app.allUsers.count, 1)
// Call the `delete` method to delete the user
try await syncUser.delete()
// When you delete the user, the SyncSession is destroyed and
// there is no current user.
XCTAssertNil(app.currentUser)
// Now that we've deleted the user, the app has no users.
XCTAssertEqual(app.allUsers.count, 0)
}

Realm Swift SDK バージョン 10.15.0 および 10.16.0 以降では、Realm API の多くが Swift async/await 構文をサポートしています。 プロジェクトは、次の要件を満たしている必要があります。

Swift SDK バージョン
Swift バージョン要件
サポートされている OS
10.25.0
Swift 5.6
iOS 13.x
10.15.0 または 10.16.0
Swift 5.5
iOS 15.x

アプリが async/awaitコンテキストで Realm にアクセスする場合は、スレッド関連のクラッシュを回避するためにコードを@MainActorでマークします。

アプリケーションが async/await を使用しない場合:

// Logging in using anonymous authentication creates a user object
app.login(credentials: Credentials.anonymous) { [self] (result) in
switch result {
case .failure(let error):
fatalError("Login failed: \(error.localizedDescription)")
case .success(let user):
// Assign the user object to a variable to demonstrate user deletion
syncUser = user
}
}
// Later, after the user is loggedd in we have a user,
// and the total users in the app = 1
XCTAssertNotNil(syncUser)
XCTAssertEqual(app.allUsers.count, 1)
// Call the `delete` method to delete the user
syncUser!.delete { (error) in
XCTAssertNil(error)
}
// When you delete the user, the SyncSession is destroyed and
// there is no current user.
XCTAssertNil(app.currentUser)
// Now that we've deleted the user, the app has no users.
XCTAssertEqual(app.allUsers.count, 0)

戻る

ユーザーの管理