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 forneçam 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, deve implementar a exclusão da conta de usuário até junho 30 2022de,.
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. Apple exige que você divida as políticas de retenção e exclusão de dados para seus clientes de aplicação e forneç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 aplicação usar 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)