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
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
-
Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.
-
Impor paket Amazon Cognito sebagai berikut:
import com.amazonaws.mobileconnectors.cognito.*;
-
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
-
Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.
-
Impor
AWSCore
danCognito
, dan inisialisasiAWSCognito
sebagai berikut:#import <AWSiOSSDKv2/AWSCore.h> #import <AWSCognitoSync/Cognito.h> AWSCognito *syncClient = [AWSCognito defaultCognito];
-
Jika Anda menggunakan CocoaPods, ganti
<AWSiOSSDKv2/AWSCore.h>
denganAWSCore.h
. Ikuti sintaks yang sama untuk impor Amazon Cognito.
iOS - Swift
-
Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.
-
Impor dan inisialisasi
AWSCognito
sebagai berikut:import AWSCognito let syncClient = AWSCognito.default()!
JavaScript
-
Unduh Manajer Sinkronisasi Amazon Cognito
untuk. JavaScript -
Sertakan perpustakaan Sync Manager di proyek Anda.
-
Buat penyedia kredensials, ikuti petunjuk di Mendapatkan kredensi.
-
Inisialisasi Manajer Sinkronisasi sebagai berikut:
var syncManager = new AWS.CognitoSyncManager();
Unity
-
Buat instance dari
CognitoAWSCredentials
, mengikuti instruksi diMendapatkan kredensi. Buat instans
CognitoSyncManager
. LewatiCognitoAwsCredentials
objek dan aAmazonCognitoSyncConfig
, dan sertakan setidaknya set Region, sebagai berikut:AmazonCognitoSyncConfig clientConfig = new AmazonCognitoSyncConfig { RegionEndpoint = REGION }; CognitoSyncManager syncManager = new CognitoSyncManager(credentials, clientConfig);
Xamarin
-
Buat instance dari
CognitoAWSCredentials
, mengikuti instruksi diMendapatkan kredensi. -
Buat instans
CognitoSyncManager
. LewatiCognitoAwsCredentials
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.