Kii Cloudにはいくつかのデータが登場します。ここでは、それらを紹介し、KiiLib-Android-Volleyでどのように扱うかを紹介します。
アプリのユーザーを表します。プロパティとしてメールアドレスやログイン名などがあります。それ以外にも、JSONObjectにセットできるデータを追加属性として設定できます。
各ユーザーはIDを持っています。KiiLib-Android-Volleyでは、IDを指定してKiiUserオブジェクトを作成します。
// 実際のユーザーIDはもっと長い
String userId = "1234";
KiiUser user = new KiiUser(userId);
ユーザーのグループを表します。プロパティとしてグループ名と、メンバーのリストを持っています。グループ名はUnique制約が無いので、同名のグループをいくつも作成することができます。
各グループはIDを持っています。KiiLib-Android-Volleyでは、IDを指定してKiiGroupオブジェクトを作成します。
// 実際のグループIDはもっと長い
String groupId = "group1234";
KiiGroup group = new KiiGroup(groupId);
Kii Cloudにおけるデータ(JSONObject)は、バケツと呼ばれる入れ物に入っています。このバケツ(KiiBucket)には名前があり、MySQLなどのリレーショナルデータベースにおけるテーブルのようなものですが、下記のような違いがあります。
また、このバケツには所有者の概念があります。所有者となれるのは次の3つです。
基本的に、所有者に含まれるユーザーのみアクセスができます。例えば、ある特定のユーザーのバケツを、他ユーザーが検索したりすることはできません。
KiiLib-Android-Volleyでは、所有者と名前を指定してKiiBucketオブジェクトを作成します。
// 所有者はアプリ。誰でもアクセスできる
String bucketName = "ranking";
KiiBucket bucket = new KiiBucket(null, bucketName);
// 所有者は指定したグループ。このグループに所属する人のみアクセスできる
String groupId = "group1234";
KiiGroup group = new KiiGroup(groupId);
String bucketName = "board";
KiiBucket bucket = new KiiBucket(group, bucketName);
// 所有者はログイン中のユーザー(id=meはログイン中のユーザーを表す特別なID)
// ログイン中のユーザー以外はアクセスできない
String userId = "me";
KiiUser user = new KiiUser(userId);
String bucketName = "board";
KiiBucket bucket = new KiiBucket(user, bucketName);
Kii Cloud内におけるデータそのもの。MySQLなどのリレーショナルデータベースにおけるレコードのようなものですが、実体はJSONObjectです。
各KiiObjectは、どのバケツに入っているかを表す必要があるため、KiiLib-Android-Volleyでは、IDとKiiBucketを指定してKiiObjectオブジェクトを作成します。
String userId = "me";
KiiUser user = new KiiUser(userId);
String bucketName = "board";
KiiBucket bucket = new KiiBucket(user, bucketName);
// ログイン中のユーザー用のバケツに入っているオブジェクトを作成
String objectId = "obj1234";
KiiObject obj = new KiiObject(bucket, objectId);