Criar e excluir usuários - Swift SDK
Nesta página
Criar um usuário
Para a maioria dosmétodos de autenticação , o Atlas App Services cria automaticamente um objeto de usuário na primeira vez que um usuário se autentica. A única exceção é a autenticação por e-mail/senha. Ao usar a autenticação de e-mail/senha, você deve registrar e confirmar um usuário antes que o usuário possa se autenticar em um App Services App.
Dica
Requisitos de exclusão de conta Apple
A Apple exige que os aplicativos listados em sua App Store deve dar a qualquer usuário que crie uma conta a opção de excluí-la. Se você usa um método de autenticação em que deve registrar manualmente um usuário, como autenticação de e-mail/senha, ou um que cria automaticamente um usuário, como o Sign-In with Apple, você deve implementar a exclusão da conta de usuário até junho 30, 2022.
Excluir um usuário
Novidades na versão 10.23.0.
Você pode chamar o método de exclusão em um objeto de usuário para excluir o objeto de usuário do seu aplicativo. Isso exclui o objeto do servidor, além de limpar os dados locais.
Importante
A exclusão de um usuário exclui apenas o objeto de usuário , que pode conter metadados associados . Isso não exclui dados de usuário personalizados ou dados inseridos pelo usuário do seu aplicação. A Apple exige que você divida as políticas de retenção e exclusão de dados aos seus clientes de aplicação e ofereça a eles uma maneira de solicitar a exclusão de dados do usuário. Se você coletar dados de usuário adicionais, deverá implementar seus próprios métodos ou processos para excluir esses dados.
Excluir usuários com Async/Await
Se o seu aplicativo usa a sintaxe async/await da 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) }
A partir das versões 10.15.0 e 10.16.0 do SDK do Realm Swift, muitas das APIs do Realm suportam a sintaxe async/await do Swift. Os projetos devem atender a estes requisitos:
Versão do Swift SDK | Requisito de versão do Swift | Sistema operacional compatível |
---|---|---|
10.25.0 | Swift 5.6 | iOS 13.x |
10.15.0 ou 10.16.0 | Swift 5.5 | iOS 15.x |
Se a sua aplicação acessar Realm em um contexto do async/await
, marque o código com @MainActor
para evitar falhas relacionadas a threading.
Excluir usuários com manipuladores de conclusão
Se o seu aplicativo não usar 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)