Os usuários do aplicativo podem gerar chaves de API do usuário com o SDK. Você pode permitir que dispositivos ou serviços se comuniquem com o Realm em nome de um usuário associando uma chave de API de usuário exclusiva a cada dispositivo ou serviço.
As chaves de API do usuário estão sempre associadas a um objeto de usuário criado por outro provedor de autenticação não anônimo. Cada usuário pode associar até 20 chaves de usuário à sua conta.
Para criar uma nova chave de API do usuário, chame os métodos create() ou createAsync() de um usuário conectado na instância apiKeyAuth . A chave de API do usuário será associada ao usuário conectado e pode ser usada para interagir com o Realm em seu nome. Não é possível criar chaves de API do usuário para usuários anônimos.
Aviso
Armazenar o valor da chave de API
O SDK só retorna o valor da chave de API do usuário quando você o cria. Certifique-se de armazenar o valor key com segurança para que você possa usá-lo para se conectar.
Se você perder ou não armazenar o valor do key , não haverá como recuperá-lo. Você precisará criar uma nova chave de API do usuário.
| User user = app.currentUser(); | 
| user.getApiKeys().createAsync("Name-of-the-API-Key", result -> { | 
| if (result.isSuccess()) { | 
| Log.v("EXAMPLE", "Successfully created API key: " + result.get().getValue()); | 
| } else { | 
| Log.e("EXAMPLE", "Error creating API key: " + result.getError().getErrorMessage()); | 
| } | 
| }); | 
| val user = app.currentUser() | 
| user!!.apiKeys.createAsync("Name-of-the-API-Key") { result -> | 
| if (result.isSuccess) { | 
| Log.v("EXAMPLE", "Successfully created API key: ${result.get().value}") | 
| } else { | 
| Log.e("EXAMPLE", "Error creating API key: ${result.error}") | 
| } | 
| } | 
Para obter uma lista de todas as chaves API do usuário associadas ao usuário conectado, chame o método síncrono fetchAll() ou o método assíncrono fetchAll() de um usuário conectado à instância ApiKeyAuth .
| User user = app.currentUser(); | 
| user.getApiKeys().fetchAll(result -> { | 
| if (result.isSuccess()) { | 
| Log.v("EXAMPLE", "Successfully fetched API keys: " + Arrays.toString(result.get().toArray())); | 
| } else { | 
| Log.e("EXAMPLE", "Error fetching API keys: " + result.getError().getErrorMessage()); | 
| } | 
| }); | 
| val user = app.currentUser() | 
| user!!.apiKeys | 
| .fetchAll { result -> | 
| if (result.isSuccess) { | 
| Log.v("EXAMPLE", "Successfully fetched API keys: ${result.get().toTypedArray()}") | 
| } else { | 
| Log.e("EXAMPLE", "Error fetching API keys: ${result.error}") | 
| } | 
| } | 
Para procurar uma chave de API de usuário específica para o usuário conectado, passe o ID da chave para os métodos fetch() ou fetchAsync() de um usuário conectado .
| User user = app.currentUser(); | 
| user.getApiKeys().fetchAsync(api_key_id, result -> { | 
| if (result.isSuccess()) { | 
| Log.v("EXAMPLE", "Successfully fetched API key: " + result.get()); | 
| } else { | 
| Log.e("EXAMPLE", "Error fetching API key: " + result.getError().getErrorMessage()); | 
| } | 
| }); | 
| val user = app.currentUser() | 
| user!!.apiKeys.fetchAsync(api_key_id) { result -> | 
| if (result.isSuccess) { | 
| Log.v("EXAMPLE", "Successfully fetched API key: ${result.get()}") | 
| } else { | 
| Log.e("EXAMPLE", "Error fetching API key: ${result.error}") | 
| } | 
| } | 
Para desabilitar uma chave de API de usuário específica sem excluí-la, passe o ID da chave para os métodos disable() ou disableAsync() de um usuário conectado .
| User user = app.currentUser(); | 
| user.getApiKeys().disableAsync(api_key_id, result -> { | 
| if (result.isSuccess()) { | 
| Log.v("EXAMPLE", "Successfully disabled API key."); | 
| } else { | 
| Log.e("EXAMPLE", "Error disabling API key: " + result.getError().getErrorMessage()); | 
| } | 
| }); | 
| val user = app.currentUser() | 
| user!!.apiKeys.disableAsync(api_key_id) { result -> | 
| if (result.isSuccess) { | 
| Log.v("EXAMPLE", "Successfully disabled API key.") | 
| } else { | 
| Log.e("EXAMPLE", "Error disabling API key: ${result.error}") | 
| } | 
| } | 
Para habilitar uma chave de API de usuário específica que foi desabilitada anteriormente, passe o ID da chave para os métodos enable() ou enableAsync() de um usuário conectado na instância ApiKeyAuth .
| User user = app.currentUser(); | 
| user.getApiKeys().enableAsync(api_key_id, result -> { | 
| if (result.isSuccess()) { | 
| Log.v("EXAMPLE", "Successfully enabled API key."); | 
| } else { | 
| Log.e("EXAMPLE", "Error fetching API key: " + result.getError().getErrorMessage()); | 
| } | 
| }); | 
| val user = app.currentUser() | 
| user!!.apiKeys.enableAsync(api_key_id) { result -> | 
| if (result.isSuccess) { | 
| Log.v("EXAMPLE", "Successfully enabled API key.") | 
| } else { | 
| Log.e("EXAMPLE", "Error fetching API key: ${result.error}") | 
| } | 
| } | 
Para remover permanentemente uma chave de API de usuário específica, passe o ID da chave para os métodos delete() ou deleteAsync() de um usuário conectado .
| User user = app.currentUser(); | 
| user.getApiKeys().deleteAsync(api_key_id, result -> { | 
| if (result.isSuccess()) { | 
| Log.v("EXAMPLE", "Successfully deleted API key."); | 
| } else { | 
| Log.e("EXAMPLE", "Error deleting API key: " + result.getError().getErrorMessage()); | 
| } | 
| }); | 
| val user = app.currentUser() | 
| user!!.apiKeys.deleteAsync(api_key_id) { result -> | 
| if (result.isSuccess) { | 
| Log.v("EXAMPLE", "Successfully deleted API key.") | 
| } else { | 
| Log.e("EXAMPLE", "Error deleting API key: ${result.error}") | 
| } | 
| } |