Menyinkronkan data di seluruh klien - Amazon Cognito

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyinkronkan data di seluruh klien

Jika Anda baru mengenal Amazon Cognito Sync, gunakan AWS AppSync. Seperti Amazon Cognito Sync, AWS AppSync adalah layanan untuk menyinkronkan data aplikasi di seluruh perangkat.

Hal ini memungkinkan data pengguna seperti preferensi aplikasi atau game state agar dapat disinkronkan. Hal ini juga memperluas kemampuan ini dengan memungkinkan beberapa pengguna untuk menyinkronkan dan berkolaborasi secara langsung pada data bersama.

Dengan Amazon Cognito, Anda dapat menyimpan data pengguna dalam kumpulan data yang berisi pasangan nilai kunci. Amazon Cognito mengaitkan data ini dengan identitas di kumpulan identitas Anda sehingga aplikasi Anda dapat mengaksesnya di seluruh login dan perangkat. Untuk menyinkronkan data ini di antara layanan Amazon Cognito dan perangkat pengguna akhir, gunakan metode sinkronisasi. Setiap set data dapat memiliki ukuran maksimum 1 MB. Anda dapat mengaitkan hingga 20 set data dengan identitas.

Amazon Cognito Sync client membuat cache lokal untuk data identitas. Saat aplikasi Anda membaca dan menulis kunci, aplikasi akan berkomunikasi dengan cache lokal ini. Komunikasi ini menjamin bahwa semua perubahan yang Anda buat pada perangkat segera tersedia di perangkat, bahkan ketika Anda sedang offline. Ketika metode sinkronisasi dipanggil, perubahan dari layanan ditarik ke perangkat, dan setiap perubahan lokal didorong ke layanan. Pada titik ini, perubahan tersedia untuk perangkat lain untuk disinkronkan.

Menginisialisasi klien Sinkronisasi Amazon Cognito

Untuk menginisialisasi klien Amazon Cognito Sync, Anda harus terlebih dahulu membuat penyedia kredensial. Penyedia kredensial memperoleh AWS kredensil sementara untuk memungkinkan aplikasi Anda mengakses sumber daya Anda. AWS Anda juga harus mengimpor file header yang diperlukan. Gunakan langkah-langkah berikut untuk menginisialisasi Amazon Cognito Sync client.

Android

  1. Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.

  2. Impor paket Amazon Cognito sebagai berikut: import com.amazonaws.mobileconnectors.cognito.*;

  3. Inisialisasi Sinkronisasi Amazon Cognito. Teruskan konteks aplikasi Android, ID kumpulan identitas Wilayah AWS, dan penyedia kredensi Amazon Cognito yang diinisialisasi sebagai berikut:

    CognitoSyncManager client = new CognitoSyncManager( getApplicationContext(), Regions.YOUR_REGION, credentialsProvider);

iOS - Objective-C

  1. Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.

  2. Impor AWSCore danCognito, dan inisialisasi AWSCognito sebagai berikut:

    #import <AWSiOSSDKv2/AWSCore.h> #import <AWSCognitoSync/Cognito.h> AWSCognito *syncClient = [AWSCognito defaultCognito];
  3. Jika Anda menggunakan CocoaPods, ganti <AWSiOSSDKv2/AWSCore.h> denganAWSCore.h. Ikuti sintaks yang sama untuk impor Amazon Cognito.

iOS - Swift

  1. Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.

  2. Impor dan inisialisasi AWSCognito sebagai berikut:

    import AWSCognito let syncClient = AWSCognito.default()!

JavaScript

  1. Unduh Manajer Sinkronisasi Amazon Cognito untuk. JavaScript

  2. Sertakan perpustakaan Sync Manager di proyek Anda.

  3. Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.

  4. Inisialisasi Manajer Sinkronisasi sebagai berikut:

    var syncManager = new AWS.CognitoSyncManager();

Unity

  1. Buat instance dariCognitoAWSCredentials, mengikuti instruksi diMendapatkan kredensi.

  2. Buat instans CognitoSyncManager. Lewati CognitoAwsCredentials objek dan aAmazonCognitoSyncConfig, dan sertakan setidaknya set Region, sebagai berikut:

    AmazonCognitoSyncConfig clientConfig = new AmazonCognitoSyncConfig { RegionEndpoint = REGION }; CognitoSyncManager syncManager = new CognitoSyncManager(credentials, clientConfig);

Xamarin

  1. Buat instance dariCognitoAWSCredentials, mengikuti instruksi diMendapatkan kredensi.

  2. Buat instans CognitoSyncManager. Lewati CognitoAwsCredentials objek dan aAmazonCognitoSyncConfig, dan sertakan setidaknya set Region, sebagai berikut:

    AmazonCognitoSyncConfig clientConfig = new AmazonCognitoSyncConfig { RegionEndpoint = REGION }; CognitoSyncManager syncManager = new CognitoSyncManager(credentials, clientConfig);

Memahami kumpulan data

Amazon Cognito mengatur data profil pengguna ke dalam kumpulan data. Setiap set data dapat berisi hingga 1MB data dalam bentuk pasangan nilai kunci. Dataset adalah entitas paling terperinci yang dapat Anda sinkronkan. Membaca dan menulis operasi yang dilakukan pada set data hanya mempengaruhi toko lokal sampai metode sinkronisasi dipanggil. Amazon Cognito mengidentifikasi kumpulan data dengan string unik. Anda dapat membuat kumpulan data baru atau membuka yang sudah ada sebagai berikut.

Android

Dataset dataset = client.openOrCreateDataset("datasetname");

Untuk menghapus kumpulan data, pertama-tama panggil metode untuk menghapusnya dari penyimpanan lokal, lalu panggil synchronize metode untuk menghapus kumpulan data dari Amazon Cognito sebagai berikut:

dataset.delete(); dataset.synchronize(syncCallback);

iOS - Objective-C

AWSCognitoDataset *dataset = [syncClient openOrCreateDataset:@"myDataSet"];

Untuk menghapus kumpulan data, pertama-tama panggil metode untuk menghapusnya dari penyimpanan lokal, lalu panggil synchronize metode untuk menghapus kumpulan data dari Amazon Cognito sebagai berikut:

[dataset clear]; [dataset synchronize];

iOS - Swift

let dataset = syncClient.openOrCreateDataset("myDataSet")!

Untuk menghapus kumpulan data, pertama-tama panggil metode untuk menghapusnya dari penyimpanan lokal, lalu panggil synchronize metode sebagai berikut: untuk menghapus kumpulan data dari Amazon Cognito:

dataset.clear() dataset.synchronize()

JavaScript

syncManager.openOrCreateDataset('myDatasetName', function(err, dataset) { // ... });

Unity

string myValue = dataset.Get("myKey"); dataset.Put("myKey", "newValue");

Untuk menghapus kunci dari kumpulan data, gunakan Remove sebagai berikut:

dataset.Remove("myKey");

Xamarin

Dataset dataset = syncManager.OpenOrCreateDataset("myDatasetName");

Untuk menghapus kumpulan data, pertama-tama panggil metode untuk menghapusnya dari penyimpanan lokal, lalu panggil synchronize metode untuk menghapus kumpulan data dari Amazon Cognito sebagai berikut:

dataset.Delete(); dataset.SynchronizeAsync();

Membaca dan menulis data dalam kumpulan data

Set data Amazon Cognito berfungsi sebagai kamus, dengan nilai yang dapat diakses oleh kunci. Anda dapat membaca, menambah, atau memodifikasi kunci dan nilai dari dataset seperti jika dataset adalah kamus, seperti yang ditunjukkan dalam contoh berikut.

Perhatikan bahwa nilai yang Anda tulis ke kumpulan data hanya memengaruhi salinan data lokal yang di-cache hingga Anda memanggil metode sinkronisasi.

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); });

Unity

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

Untuk menghapus kunci dari kumpulan data, gunakan remove metode sebagai berikut:

dataset.remove("myKey");

iOS - Objective-C

Untuk menghapus kunci dari kumpulan data, gunakan removeObjectForKey sebagai berikut:

[dataset removeObjectForKey:@"myKey"];

iOS - Swift

Untuk menghapus kunci dari kumpulan data, gunakan removeObjectForKey sebagai berikut:

dataset.removeObjectForKey("myKey")

Unity

Untuk menghapus kunci dari kumpulan data, gunakan Remove sebagai berikut:

dataset.Remove("myKey");

Xamarin

Anda dapat menggunakan Remove untuk menghapus kunci dari set data:

dataset.Remove("myKey");

Menyinkronkan data lokal dengan toko sinkronisasi

Android

Metode synchronize membandingkan data yang di-cache-kan secara lokal dengan data yang disimpan di Amazon Cognito Sync store. Perubahan jarak jauh diambil dari Amazon Cognito Sync store; resolusi konflik dipanggil jika ada konflik yang terjadi; dan nilai yang diperbarui pada perangkat didorong ke layanan. Untuk menyinkronkan set data, panggil metode synchronize:

dataset.synchronize(syncCallback);

Metode synchronize menerima implementasi dari antarmuka SyncCallback, yang dibahas di bawah ini.

Metode synchronizeOnConnectivity() mencoba untuk menyinkronkan ketika konektivitas tersedia. Jika konektivitas segera tersedia, synchronizeOnConnectivity() berperilaku seperti synchronize(). Jika tidak, metode ini memantau perubahan konektivitas dan melakukan sinkronisasi setelah konektivitas tersedia. Jika synchronizeOnConnectivity()dipanggil beberapa kali, hanya permintaan sinkronisasi terakhir yang disimpan, dan hanya panggilan balik terakhir yang akan dipicu. Jika set data atau callback adalah kumpulan sampah, metode ini tidak akan melakukan sinkronisasi, dan callback tidak akan dipicu.

Untuk belajar lebih lanjut tentang sinkronisasi set data dan callback yang berbeda, lihat Menangani callback acara.

iOS - Objective-C

Metode synchronize membandingkan data yang di-cache-kan secara lokal dengan data yang disimpan di Amazon Cognito Sync store. Perubahan jarak jauh diambil dari Amazon Cognito Sync store; resolusi konflik dipanggil jika ada konflik yang terjadi; dan nilai yang diperbarui pada perangkat didorong ke layanan. Untuk menyinkronkan set data, panggil metode synchronize:

Metode synchronize bersifat asinkron dan menampilkan objek AWSTask untuk menangani respons:

[[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; }];

Metode synchronizeOnConnectivity mencoba untuk melakukan sinkronisasi ketika perangkat memiliki konektivitas. Pertama, synchronizeOnConnectivity memeriksa konektivitas dan, jika perangkat online, segera memanggil sinkronisasi dan menampilkan objek AWSTask yang terkait dengan upaya tersebut.

Jika perangkat sedang offline, synchronizeOnConnectivity 1) menjadwalkan sinkronisasi pada saat perangkat online kembali dan 2) mengembalikan AWSTask dengan hasil nihil. Sinkronisasi terjadwal hanya berlaku untuk siklus hidup pada objek set data. Data tidak akan disinkronkan jika aplikasi keluar sebelum konektivitas kembali. Jika Anda ingin diberi tahu saat peristiwa terjadi selama sinkronisasi terjadwal, Anda harus menambahkan pengamat notifikasi yang ditemukan di AWSCognito.

Untuk belajar lebih lanjut tentang sinkronisasi set data dan callback yang berbeda, lihat Menangani callback acara.

iOS - Swift

Metode synchronize membandingkan data yang di-cache-kan secara lokal dengan data yang disimpan di Amazon Cognito Sync store. Perubahan jarak jauh diambil dari Amazon Cognito Sync store; resolusi konflik dipanggil jika ada konflik yang terjadi; dan nilai yang diperbarui pada perangkat didorong ke layanan. Untuk menyinkronkan set data, panggil metode synchronize:

Metode synchronize bersifat asinkron dan menampilkan objek AWSTask untuk menangani respons:

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 })

Metode synchronizeOnConnectivity mencoba untuk melakukan sinkronisasi ketika perangkat memiliki konektivitas. Pertama, synchronizeOnConnectivity memeriksa konektivitas dan, jika perangkat online, segera memanggil synchronize dan menampilkan objek AWSTask yang terkait dengan upaya tersebut.

Jika perangkat sedang offline, synchronizeOnConnectivity 1) menjadwalkan sinkronisasi pada saat perangkat online kembali dan 2) mengembalikan objek AWSTask dengan hasil nihil. Sinkronisasi terjadwal hanya berlaku untuk siklus hidup pada objek set data. Data tidak akan disinkronkan jika aplikasi keluar sebelum konektivitas kembali. Jika Anda ingin diberi tahu saat peristiwa terjadi selama sinkronisasi terjadwal, Anda harus menambahkan pengamat notifikasi yang ditemukan di AWSCognito.

Untuk belajar lebih lanjut tentang sinkronisasi set data dan callback yang berbeda, lihat Menangani callback acara.

JavaScript

Metode synchronize membandingkan data yang di-cache-kan secara lokal dengan data yang disimpan di Amazon Cognito Sync store. Perubahan jarak jauh diambil dari Amazon Cognito Sync store; resolusi konflik dipanggil jika ada konflik yang terjadi; dan nilai yang diperbarui pada perangkat didorong ke layanan. Untuk menyinkronkan set data, panggil metode synchronize:

dataset.synchronize();

Untuk belajar lebih lanjut tentang sinkronisasi set data dan callback yang berbeda, lihat Menangani callback acara.

Unity

Metode sinkronisasi membandingkan data yang di-cache-kan secara lokal dengan data yang disimpan di Amazon Cognito Sync store. Perubahan jarak jauh diambil dari Amazon Cognito Sync store; resolusi konflik dipanggil jika ada konflik yang terjadi; dan nilai yang diperbarui pada perangkat didorong ke layanan. Untuk menyinkronkan set data, panggil metode synchronize:

dataset.Synchronize();

Sinkronisasi akan berjalan secara asinkron dan akan berakhir dengan memanggil salah satu dari beberapa callback Anda dapat tentukan dalam Set data.

Untuk belajar lebih lanjut tentang sinkronisasi set data dan callback yang berbeda, lihat Menangani callback acara.

Xamarin

Metode synchronize membandingkan data yang di-cache-kan secara lokal dengan data yang disimpan di Amazon Cognito Sync store. Perubahan jarak jauh diambil dari Amazon Cognito Sync store; resolusi konflik dipanggil jika ada konflik yang terjadi; dan nilai yang diperbarui pada perangkat didorong ke layanan. Untuk menyinkronkan set data, panggil metode synchronize:

dataset.SynchronizeAsync();

Untuk belajar lebih lanjut tentang sinkronisasi set data dan callback yang berbeda, lihat Menangani callback acara.