Key-Value Store (Legacy)
The key-value store provides a simple persistence layer for the players.
his feature has been superseded by cloud storage.
CloudService.GameServices.KvStoreService
The player needs need to be logged in to use the key-value store.
This class provides the methods to set, get and unset key-value pairs. This is executed within the context of the currently logged in player.
Example
using Coherence.Cloud;
using Coherence.Toolkit;
using System.Collections;
using UnityEngine;
using Result = Coherence.Runtime.Result;
public class KeyValueStoreExample : MonoBehaviour
{
    public CoherenceBridge bridge;
    public string username;
    public string password;
    public string myKey;
    public string myValue;
    private CloudService cloudService;
    void Start()
    {
        cloudService = bridge.CloudService;
        StartCoroutine(LoginAsAUserAndUseKvStore());
    }
    private IEnumerator LoginAsAUserAndUseKvStore()
    {
        IAuthClient authService = cloudService.GameServices.AuthService;
        while (!cloudService.IsConnectedToCloud && authService.SessionTokenRefreshResult == null)
        {
            yield return null;
        }
        // If refresh failed, we have to login as a user with the given credentials again
        if (authService.SessionTokenRefreshResult == Result.InvalidCredentials)
        {
            var task = authService.LoginWithPassword(username, password, true);
            while (!task.IsCompleted)
            {
                yield return null;
            }
        }
        // At this point, we are ready to fully utilize the Cloud Service
        KvStoreClient keyValueStore = cloudService.GameServices.KvStoreService;
        // Sets a value
        // key: lowercase letters, numbers, underscore, dash
        // val: any string (null is not allowed)
        keyValueStore.Set(myKey, myValue);
        // Gets a value
        // key: lowercase letters, numbers, underscore, dash
        var foo = keyValueStore.Get(myKey);
        Debug.Log(string.Format("foo={0}", foo)); // foo=1
        // Unsets a value, removing it from the store
        // key: lowercase letters, numbers, underscore, dash
        keyValueStore.Unset(myKey);
    }
}Limitations
Size: there are no limits to the number of stored key/values as long as the total size is less than 256 kB.
Requests: Set/Get/Unset can be called unlimited amount of times but the execution may be throttled.
Was this helpful?

