Los SDK de dispositivos Atlas están obsoletos. Consulte Página de desuso para más detalles.
Los usuarios de la aplicación pueden generar claves API de usuario con el SDK. Puede permitir que los dispositivos o servicios se comuniquen con Realm en nombre de un usuario asociando una clave API de usuario única a cada dispositivo o servicio.
Las claves de API de usuario siempre se asocian a un objeto de usuario creado por otro proveedor de autenticación no anónimo. Cada usuario puede asociar hasta 20 claves de usuario a su cuenta.
Tip
Las claves API de usuario no son lo mismo que las claves API de servidor, que permiten a un usuario o servicio autenticarse directamente con Realm mediante el proveedor de autenticación de claves API. Para obtener más información sobre las claves API de servidor, consulte Autenticación de clave API.
Crear una clave API de usuario
Para crear una nueva clave API de usuario, llama a los métodos create() o createAsync() de una instancia apiKeyAuth de usuario con sesión iniciada. La clave API de usuario se asociará con el usuario autenticado y podrá usarse para interactuar con Realm en su nombre. No puedes crear claves API de usuario para usuarios anónimos.
Advertencia
Almacenar el valor de la clave API
El SDK solo devuelve el valor de la clave API del usuario al crearla. Asegúrese de almacenarla. key valor de forma segura para que puedas usarlo para iniciar sesión.
Si pierde o no guarda el valor key, no podrá recuperarlo. Deberá crear una nueva clave API de usuario.
Useruser= 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}")
}
}
Buscar una clave API de usuario
Para obtener una lista de todas las claves API de usuario asociadas con el usuario que inició sesión, llame al método fetchAll() sincrónico oal método fetchAll() asincrónico de la instancia ApiKeyAuth de un usuario que inició sesión.
Useruser= 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 buscar una clave API de usuario específica para el usuario que inició sesión, pase el ID de la clave a los métodos fetch() o fetchAsync() de la instancia ApiKeyAuth de un usuario que inició sesión.
Useruser= 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}")
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}")
}
}
Eliminar una clave API de usuario
Para remover permanentemente una clave de API de usuario específica, pasa el id de la clave a los métodos delete() o deleteAsync() de una instancia ApiKeyAuth de un usuario que haya iniciar sesión.
Useruser= 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}")