사용자 생성 및 삭제 - Swift SDK
사용자 만들기
대부분의 인증 방법 의 경우, 사용자가 처음 인증할 때 Atlas App Services 는 자동으로 사용자 객체 를 생성합니다. 유일한 예외는 이메일/비밀번호 인증 입니다. 이메일/비밀번호 인증 을 사용하는 경우 사용자를 등록 하고 확인 해야 사용자가 App Services App 에 인증할 수 있습니다.
팁
Apple 계정 삭제 요건
Apple 은 App Store 를 통해 등록된 애플리케이션이 는 계정을 생성하는 모든 사용자에게 계정을 삭제 수 있는 옵션을 제공해야 합니다. 이메일/비밀번호 인증 과 같이 사용자를 수동으로 등록해야 하는 인증 방법을 사용하든, Sign-In with Apple과 같이 자동으로 사용자를 생성하는 인증 방법을 사용하든, 까지 사용자 계정 삭제 를 구현 해야 합니다. .302022
사용자 삭제
버전 10.23.0의 새로운 기능
사용자 객체에서 delete 메서드를 호출하여 앱에서 사용자 객체를 삭제할 수 있습니다. 이렇게 하면 로컬 데이터가 지워질 뿐만 아니라 서버에서 객체가 삭제됩니다.
중요
사용자를 삭제하면 관련 메타데이터가 포함될 수 있는 사용자 객체만 삭제됩니다. 애플리케이션에서 사용자 지정 사용자 데이터나 사용자가 입력한 데이터는 삭제되지 않습니다. Apple은 애플리케이션 고객에게 데이터 보존 및 삭제 정책을 공개하고 사용자 데이터 삭제를 요청할 수 있는 방법을 제공하도록 요구합니다. 추가 사용자 데이터를 수집하는 경우 해당 데이터를 삭제하는 자체 방법이나 프로세스를 구현해야 합니다.
비동기/대기로 사용자 삭제
애플리케이션 에서 Apple의 비동기/대기 구문을 사용하는 경우:
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
(으)로 표시하여 스레드 관련 충돌을 방지합니다.
완료 핸들러로 사용자 삭제
애플리케이션이 비동기/대기를 사용하지 않는 경우:
// 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)