> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo establecer datos de solo lectura del jugador

> Escriba datos de solo lectura del jugador de PlayFab desde las API de servidor para que los clientes puedan leer valores de progresión autoritativos sin poder modificarlos.

Para establecer pares clave-valor de solo lectura, debe llamar al método de la API de servidor [UpdateUserReadOnlyData](xref:titleid.playfabapi.com.server.playerdatamanagement.updateuserreadonlydata) desde un proceso de servidor. Se trata de datos que el servidor puede modificar, pero que el cliente solo puede leer.

Los ejemplos de C# de este tema están escritos para el SDK de Unity. El SDK de Unity usa un modelo controlado por eventos para controlar las tareas no sincrónicas. Para ejecutar el código de ejemplo con el SDK de C#, debe modificar el código para usar un modelo asincrónico de tareas (Task). Los métodos que deben modificarse tienen Async anexado al nombre del método en la firma. Por ejemplo, SetObject en el SDK de Unity se convierte en SetObjectAsync en el SDK de C#. Para obtener más información, consulte [Programación asincrónica con async y await](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/).

## Ejemplo de código en C\#

El siguiente ejemplo de código en **C#** usa la API de servidor de PlayFab para crear (o actualizar, si los pares clave-valor ya existen) los pares clave-valor con la clave denominada `Father` con el valor `Fred`, `Mother` con el valor `Alice`, `Sister` con el valor `Lucy` y `Brother` con el valor `Doug`.

```csharp theme={null}
public void UpdateUserReadOnlyData() {
    PlayFabServerAPI.UpdateUserReadOnlyData(new UpdateUserDataRequest() {
        PlayFabId = "user PlayFabId here - obtained from any successful LoginResult",
        Data = new Dictionary<string, string>() {
            {"Father", "Fred"},
            {"Mother", "Alice"},
            {"Sister", "Lucy"},
            {"Brother", "Doug"}
        },
        Permission = UserDataPermission.Public
    },
    result => Debug.Log("Set read-only user data successful"),
    error => {
        Debug.Log("Got error updating read-only user data:");
        Debug.Log(error.GenerateErrorReport());
    });
}
```

## Consulte también

[Cómo obtener datos de solo lectura del jugador](/services/playfab/player-progression/player-data/how-to-get-read-only-player-data)


## Related topics

- [Cómo obtener datos de solo lectura del jugador](/es/services/playfab/player-progression/player-data/how-to-get-read-only-player-data.md)
- [Inicio rápido de datos del jugador](/es/services/playfab/player-progression/player-data/quickstart.md)
- [Modificar datos de solo lectura o internos del jugador mediante CloudScript](/es/services/playfab/player-progression/player-data/how-to-modify-read-only-internal-player-data.md)
- [Cómo establecer datos internos del jugador](/es/services/playfab/player-progression/player-data/how-to-set-internal-player-data.md)
- [Datos de jugador](/es/services/playfab/player-progression/player-data/index.md)
