Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Sincronizzazione dei dati tra client
Se non hai mai usato Amazon Cognito Sync, utilizza AWS AppSync
Consente di sincronizzare i dati dell'utente come le preferenze dell'app o lo stato del gioco. Inoltre estende queste funzionalità consentendo a più utenti di sincronizzare e collaborare in tempo reale su dati condivisi.
Amazon Cognito ti consente di salvare i dati dell'utente finale in set di dati contenenti coppie chiave-valore. Questi dati sono associati a un'identità di Amazon Cognito nel tuo pool di identità, in modo che sia possibile accedervi attraverso gli accessi e i dispositivi. Per sincronizzare i dati tra il servizio Amazon Cognito e i dispositivi di un utente finale, richiama il metodo di sincronizzazione. Ogni set di dati può avere una dimensione massima di 1 MB. Puoi associare fino a un massimo di 20 set di dati con un'identità.
Il client Amazon Cognito Sync crea una cache locale per i dati di identità. Quando legge e scrive chiavi, la tua app comunica con questa cache locale. Questo garantisce che tutte le modifiche che effettui sul dispositivo siano immediatamente disponibili sullo stesso, anche quando sei offline. Quando viene chiamato il metodo di sincronizzazione, le modifiche del servizio vengono trasferite al dispositivo e eventuali modifiche locali vengono trasferite al servizio. A questo punto, le modifiche sono disponibili per la sincronizzazione con altri dispositivi.
Inizializzazione del client di Amazon Cognito Sync
Per inizializzare il client di Amazon Cognito Sync, è necessario creare prima un fornitore di credenziali. Il fornitore di credenziali acquisisce AWS credenziali temporanee per consentire all'app di accedere alle risorse. AWS Devi anche importare i file di intestazione necessari. Utilizza la procedura seguente per inizializzare il client di Amazon Cognito Sync.
Android
-
Crea un fornitore di credenziali, seguendo le istruzioni in Ottenere le credenziali.
-
Importa il pacchetto Amazon Cognito come segue:
import com.amazonaws.mobileconnectors.cognito.*;
-
Inizializza Amazon Cognito Sync. Passa il contesto dell'app Android, l'ID del pool di identità, una Regione AWS e un fornitore di credenziali Amazon Cognito inizializzato come segue:
CognitoSyncManager client = new CognitoSyncManager( getApplicationContext(), Regions.YOUR_REGION, credentialsProvider);
iOS - Objective-C
-
Crea un fornitore di credenziali, seguendo le istruzioni in Ottenere le credenziali.
-
Importa
AWSCore
eCognito
e inizializzaAWSCognito
come segue:#import <AWSiOSSDKv2/AWSCore.h> #import <AWSCognitoSync/Cognito.h> AWSCognito *syncClient = [AWSCognito defaultCognito];
-
Se lo stai utilizzando CocoaPods, sostituiscilo con.
<AWSiOSSDKv2/AWSCore.h>
AWSCore.h
Segui la stessa sintassi per l'importazione di Amazon Cognito.
iOS - Swift
-
Crea un fornitore di credenziali, seguendo le istruzioni in Ottenere le credenziali.
-
Importa e inizializza
AWSCognito
come segue:import AWSCognito let syncClient = AWSCognito.default()!
JavaScript
-
Scarica Amazon Cognito Sync Manager
per. JavaScript -
Includi la libreria del manager della sincronizzazione nel tuo progetto;
-
Crea un fornitore di credenziali, seguendo le istruzioni in Ottenere le credenziali.
-
Inizializza il manager della sincronizzazione come segue:
var syncManager = new AWS.CognitoSyncManager();
Unità
-
Avrai bisogno inizialmente di creare un'istanza delle
CognitoAWSCredentials
, seguendo le istruzioni in Ottenere le credenziali. Creare un'istanza di
CognitoSyncManager
. Passa l'oggetto delleCognitoAwsCredentials
e unAmazonCognitoSyncConfig
e includi almeno il set Regione, come segue:AmazonCognitoSyncConfig clientConfig = new AmazonCognitoSyncConfig { RegionEndpoint = REGION }; CognitoSyncManager syncManager = new CognitoSyncManager(credentials, clientConfig);
Xamarin
-
Crea un'istanza delle
CognitoAWSCredentials
, seguendo le istruzioni in Ottenere le credenziali. -
Creare un'istanza di
CognitoSyncManager
. Passa l'oggetto delleCognitoAwsCredentials
e unAmazonCognitoSyncConfig
e includi almeno il set Regione, come segue:AmazonCognitoSyncConfig clientConfig = new AmazonCognitoSyncConfig { RegionEndpoint = REGION }; CognitoSyncManager syncManager = new CognitoSyncManager(credentials, clientConfig);
Comprendere i set di dati
Amazon Cognito organizza i dati del profilo dell'utente finale in set di dati. Ogni set di dati può contenere fino a 1 MB di dati sotto forma di coppie chiave-valore. Un set di dati è l'entità più granulare che puoi sincronizzare. Le operazioni di lettura e scrittura eseguite su un set di dati riguardano solo l'archivio locale fino a quando il metodo di sincronizzazione viene invocato. Amazon Cognito identifica un set di dati attraverso una stringa univoca. Puoi creare un nuovo set di dati oppure aprirne uno esistente nel modo seguente.
Android
Dataset dataset = client.openOrCreateDataset("datasetname");
Per eliminare un set di dati, per prima cosa chiama il metodo per rimuoverlo dallo spazio di archiviazione locale, quindi richiama il metodo synchronize
per eliminare il set di dati da Amazon Cognito nel modo seguente:
dataset.delete(); dataset.synchronize(syncCallback);
iOS - Objective-C
AWSCognitoDataset *dataset = [syncClient openOrCreateDataset:@"myDataSet"];
Per eliminare un set di dati, per prima cosa chiama il metodo per rimuoverlo dallo spazio di archiviazione locale, quindi richiama il metodo synchronize
per eliminare il set di dati da Amazon Cognito nel modo seguente:
[dataset clear]; [dataset synchronize];
iOS - Swift
let dataset = syncClient.openOrCreateDataset("myDataSet")!
Per eliminare un set di dati, per prima cosa chiama il metodo per rimuoverlo dallo spazio di archiviazione locale, quindi richiama il metodo synchronize
per eliminare il set di dati da Amazon Cognito:
dataset.clear() dataset.synchronize()
JavaScript
syncManager.openOrCreateDataset('myDatasetName', function(err, dataset) { // ... });
Unità
string myValue = dataset.Get("myKey"); dataset.Put("myKey", "newValue");
Per eliminare una chiave dal set di dati, utilizza Remove
come segue:
dataset.Remove("myKey");
Xamarin
Dataset dataset = syncManager.OpenOrCreateDataset("myDatasetName");
Per eliminare un set di dati, per prima cosa chiama il metodo per rimuoverlo dallo spazio di archiviazione locale, quindi richiama il metodo synchronize
per eliminare il set di dati da Amazon Cognito nel modo seguente:
dataset.Delete(); dataset.SynchronizeAsync();
Lettura e scrittura dei dati nei set di dati
Funzione di set di dati di Amazon Cognito come dizionari, con i valori accessibili tramite chiave. Le chiavi e valori di un set di dati possono essere letti, aggiunti o modificati esattamente come se il set di dati fosse un dizionario, come mostrato negli esempi seguenti.
Nota che i valori che scrivi su un set di dati locali riguardano solo la copia memorizzata nella cache locale finché non chiami il metodo di sincronizzazione.
Android
String value = dataset.get("myKey"); dataset.put("myKey", "my value");
iOS - Objective-C
[dataset setString:@"my value" forKey:@"myKey"]; NSString *value = [dataset stringForKey:@"myKey"];
iOS - Swift
dataset.setString("my value", forKey:"myKey") let value = dataset.stringForKey("myKey")
JavaScript
dataset.get('myKey', function(err, value) { console.log('myRecord: ' + value); }); dataset.put('newKey', 'newValue', function(err, record) { console.log(record); }); dataset.remove('oldKey', function(err, record) { console.log(success); });
Unità
string myValue = dataset.Get("myKey"); dataset.Put("myKey", "newValue");
Xamarin
//obtain a value string myValue = dataset.Get("myKey"); // Create a record in a dataset and synchronize with the server dataset.OnSyncSuccess += SyncSuccessCallback; dataset.Put("myKey", "myValue"); dataset.SynchronizeAsync(); void SyncSuccessCallback(object sender, SyncSuccessEventArgs e) { // Your handler code here }
Android
Puoi utilizzare il metodo remove
per rimuovere le chiavi da un set di dati come segue:
dataset.remove("myKey");
iOS - Objective-C
Per eliminare una chiave dal set di dati, utilizza removeObjectForKey
come segue:
[dataset removeObjectForKey:@"myKey"];
iOS - Swift
Per eliminare una chiave dal set di dati, utilizza removeObjectForKey
come segue:
dataset.removeObjectForKey("myKey")
Unità
Per eliminare una chiave dal set di dati, utilizza Remove
come segue:
dataset.Remove("myKey");
Xamarin
Usa il comando Remove
per eliminare una chiave dal set di dati:
dataset.Remove("myKey");
Sincronizzazione dei dati locali con lo store di sincronizzazione
Android
Il metodo synchronize
confronta i dati memorizzati nella cache locale con i dati archiviati nello store di Amazon Cognito Sync. Le modifiche remote vengono estratte dallo store Amazon Cognito Sync; la risoluzione dei conflitti viene richiamata se si verificano conflitti e i valori aggiornati sul dispositivo vengono inviati al servizio. Per sincronizzare il set di dati, chiama il suo metodo synchronize
:
dataset.synchronize(syncCallback);
Il metodo synchronize
riceve un'implementazione dell' interfaccia SyncCallback
, illustrato di seguito.
Il metodo synchronizeOnConnectivity()
tenta di sincronizzare quando è disponibile la connettività. Se la connettività è immediatamente disponibile, synchronizeOnConnectivity()
si comporta come synchronize()
. In caso contrario, monitora i cambiamenti di connettività ed esegue una sincronizzazione una volta che la connettività è disponibile. Se synchronizeOnConnectivity()
è chiamata più volte, solo l'ultima richiesta di sincronizzazione viene mantenuta, e solo l'ultima callback verrà attivata. Se il set di dati o la callback vengono sottoposti al processo di garbage collection, questo metodo non eseguirà una sincronizzazione e la callback non verrà attivata.
Per ulteriori informazioni sulla sincronizzazione del set di dati e le diverse callback, consulta Gestione dei callback degli eventi.
iOS - Objective-C
Il metodo synchronize
confronta i dati memorizzati nella cache locale con i dati archiviati nello store di Amazon Cognito Sync. Le modifiche remote vengono estratte dallo store Amazon Cognito Sync; la risoluzione dei conflitti viene richiamata se si verificano conflitti e i valori aggiornati sul dispositivo vengono inviati al servizio. Per sincronizzare il set di dati, chiama il suo metodo synchronize
:
Il metodo synchronize
è asincrono e restituisce un oggetto AWSTask
per gestire la risposta:
[[dataset synchronize] continueWithBlock:^id(AWSTask *task) { if (task.isCancelled) { // Task cancelled. } else if (task.error) { // Error while executing task. } else { // Task succeeded. The data was saved in the sync store. } return nil; }];
Il metodo synchronizeOnConnectivity
tenta di sincronizzare quando il dispositivo ha la connettività. In primo luogo, synchronizeOnConnectivity
verifica la connettività e se il dispositivo è online immediatamente invoca la sincronizzazione e restituisce l'oggetto AWSTask
associato al tentativo.
Se il dispositivo è offline, synchronizeOnConnectivity
1) pianifica un sincronizzare per la prossima volta che il dispositivo sarà online e 2) restituisce un AWSTask
con risultato nullo. La sincronizzazione programmata è valida solo per il ciclo di vita dell'oggetto del set di dati. I dati non verranno sincronizzati se l'app viene chiusa prima che la connettività sia riconquistata. Se desideri essere avvisato ogni qualvolta hanno luogo eventi durante la sincronizzazione programmata, è necessario aggiungere osservatori delle notifiche trovati in AWSCognito
.
Per ulteriori informazioni sulla sincronizzazione del set di dati e le diverse callback, consulta Gestione dei callback degli eventi.
iOS - Swift
Il metodo synchronize
confronta i dati memorizzati nella cache locale con i dati archiviati nello store di Amazon Cognito Sync. Le modifiche remote vengono estratte dallo store Amazon Cognito Sync; la risoluzione dei conflitti viene richiamata se si verificano conflitti e i valori aggiornati sul dispositivo vengono inviati al servizio. Per sincronizzare il set di dati, chiama il suo metodo synchronize
:
Il metodo synchronize
è asincrono e restituisce un oggetto AWSTask
per gestire la risposta:
dataset.synchronize().continueWith(block: { (task) -> AnyObject? in if task.isCancelled { // Task cancelled. } else if task.error != nil { // Error while executing task } else { // Task succeeded. The data was saved in the sync store. } return task })
Il metodo synchronizeOnConnectivity
tenta di sincronizzare quando il dispositivo ha la connettività. In primo luogo, synchronizeOnConnectivity
verifica la connettività e se il dispositivo è online immediatamente invoca la synchronize
e restituisce l'oggetto AWSTask
associato al tentativo.
Se il dispositivo è offline, synchronizeOnConnectivity
1) pianifica un sincronizzare per la prossima volta che il dispositivo sarà online e 2) restituisce un oggetto AWSTask
con un risultato nullo. La sincronizzazione programmata è valida solo per il ciclo di vita dell'oggetto del set di dati. I dati non verranno sincronizzati se l'app viene chiusa prima che la connettività sia riconquistata. Se desideri essere avvisato ogni qualvolta hanno luogo eventi durante la sincronizzazione programmata, è necessario aggiungere osservatori delle notifiche trovati in AWSCognito
.
Per ulteriori informazioni sulla sincronizzazione del set di dati e le diverse callback, consulta Gestione dei callback degli eventi.
JavaScript
Il metodo synchronize
confronta i dati memorizzati nella cache locale con i dati archiviati nello store di Amazon Cognito Sync. Le modifiche remote vengono estratte dallo store Amazon Cognito Sync; la risoluzione dei conflitti viene richiamata se si verificano conflitti e i valori aggiornati sul dispositivo vengono inviati al servizio. Per sincronizzare il set di dati, chiama il suo metodo synchronize
:
dataset.synchronize();
Per ulteriori informazioni sulla sincronizzazione del set di dati e le diverse callback, consulta Gestione dei callback degli eventi.
Unità
Il metodo di sincronizzazione confronta i dati memorizzati nella cache locale con i dati archiviati nello store di Amazon Cognito Sync. Le modifiche remote vengono estratte dallo store Amazon Cognito Sync; la risoluzione dei conflitti viene richiamata se si verificano conflitti e i valori aggiornati sul dispositivo vengono inviati al servizio. Per sincronizzare il set di dati, chiama il suo metodo synchronize
:
dataset.Synchronize();
La sincronizzazione genererà in modo asincrono e terminerà chiamando una delle diverse callback che puoi specificare nel set di dati.
Per ulteriori informazioni sulla sincronizzazione del set di dati e le diverse callback, consulta Gestione dei callback degli eventi.
Xamarin
Il metodo synchronize
confronta i dati memorizzati nella cache locale con i dati archiviati nello store di Amazon Cognito Sync. Le modifiche remote vengono estratte dallo store Amazon Cognito Sync; la risoluzione dei conflitti viene richiamata se si verificano conflitti e i valori aggiornati sul dispositivo vengono inviati al servizio. Per sincronizzare il set di dati, chiama il suo metodo synchronize
:
dataset.SynchronizeAsync();
Per ulteriori informazioni sulla sincronizzazione del set di dati e le diverse callback, consulta Gestione dei callback degli eventi.