The key-value store provides a simple persistence layer for the players.
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
usingCoherence.Cloud;usingCoherence.Toolkit;usingSystem.Collections;usingUnityEngine;usingResult=Coherence.Runtime.Result;publicclassKeyValueStoreExample:MonoBehaviour{publicCoherenceBridge bridge;publicstring username;publicstring password;publicstring myKey;publicstring myValue;privateCloudService cloudService;voidStart() { cloudService =bridge.CloudService;StartCoroutine(LoginAsAUserAndUseKvStore()); }privateIEnumeratorLoginAsAUserAndUseKvStore() {IAuthClient authService =cloudService.GameServices.AuthService;while (!cloudService.IsConnectedToCloud&&authService.SessionTokenRefreshResult==null) {yieldreturnnull; } // If refresh failed, we have to login as a user with the given credentials againif (authService.SessionTokenRefreshResult==Result.InvalidCredentials) {var task =authService.LoginWithPassword(username, password,true);while (!task.IsCompleted) {yieldreturnnull; } } // At this point, we are ready to fully utilize the Cloud ServiceKvStoreClient 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, dashvar 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, dashkeyValueStore.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.