カスタムフィールド
開発者は、既定フィールドに加え、任意のフィールド(年齢、性別、誕生日等)を追加できます。ただし、SDK により予約されているフィールド名は使用できません。予約されているフィールド名については Javadoc を参照してください。
カスタムフィールドは UserFields
インスタンスに設定してください。
カスタムフィールドの設定と変更
ユーザーのカスタムフィールドを設定・変更する例を以下に挙げます。
-
try { // Set custom fields. UserFields userFields = new UserFields(); userFields.set("age", 20); userFields.set("gender", "male"); userFields.set("height", 170.5); userFields.set("isMember", true); // Remove custom fields. userFields.removeFromServer("weight"); userFields.removeFromServer("chest"); // Get the currently logged-in user. KiiUser user = KiiUser.getCurrentUser(); // Update the user attributes. user.update(null, userFields); } catch (IOException e) { // Handle the error. } catch (AppException e) { // Handle the error. }
-
// Set custom fields. UserFields userFields = new UserFields(); userFields.set("age", 20); userFields.set("gender", "male"); userFields.set("height", 170.5); userFields.set("isMember", true); // Remove custom fields. userFields.removeFromServer("weight"); userFields.removeFromServer("chest"); // Get the currently logged-in user. KiiUser user = KiiUser.getCurrentUser(); // Update the user attributes. user.update(null, userFields, new KiiUserUpdateCallback() { @Override public void onUpdateCompleted(KiiUser kiiUser, Exception exception) { if (exception != null) { // Handle the error. return; } } });
既存のフィールドを更新対象として指定しない場合、そのフィールドはそのまま Kii Cloud 上に保持されます。
update()
メソッドが正常に完了すると、フィールドが Kii Cloud および KiiUser
インスタンスで更新されます。
また既定フィールドとカスタムフィールドの設定・変更は同時に行えます。
ユーザー属性の変更は、基本的にログイン中のユーザー本人に対してのみ実行できます。詳しくは ユーザー属性 をご覧ください。
注意:KiiUser#update()
と KiiUser#update(KiiUserCallBack)
は deprecated になりました。今後は KiiUser#update(IdentityData, UserFields)
または KiiUser#update(IdentityData, UserFields, KiiUserUpdateCallback)
を利用してください。
カスタムフィールドの参照
ユーザーのカスタムフィールドを取得する例を以下に挙げます。取得する値のデータ型に合った getter メソッドを実行します。詳細については Javadoc を参照してください。
-
// Get the currently logged-in user. KiiUser user = KiiUser.getCurrentUser(); try { // Refresh the user to get the latest user info from Kii Cloud. user.refresh(); // Get custom fields. int age = user.getInt("age"); String gender = user.getString("gender"); double height = user.getDouble("height"); boolean isMember = user.getBoolean("isMember"); } catch (IOException e) { // Handle the error. } catch (AppException e) { // Handle the error. }
-
// Get the currently logged-in user. KiiUser user = KiiUser.getCurrentUser(); // Refresh the user to get the latest user info from Kii Cloud. user.refresh(new KiiUserCallBack() { @Override public void onRefreshCompleted(int token, Exception exception) { if (exception != null) { // Handle the error. return; } // Get custom fields. int age = user.getInt("age"); String gender = user.getString("gender"); double height = user.getDouble("height"); boolean isMember = user.getBoolean("isMember"); } });
また、次の例のように keySet
メソッドを実行することで、設定済みのカスタムフィールド一覧が取得できます。
-
// Get the currently logged-in user. KiiUser user = KiiUser.getCurrentUser(); try { // Refresh the user to get the latest user info from Kii Cloud. user.refresh(); // Get a set of custom field keys. HashSet<String> keyset = user.keySet(); } catch (IOException e) { // Handle the error. } catch (AppException e) { // Handle the error. }
-
// Get the currently logged-in user. KiiUser user = KiiUser.getCurrentUser(); // Refresh the user to get the latest user info from Kii Cloud. user.refresh(new KiiUserCallBack() { @Override public void onRefreshCompleted(int token, Exception exception) { if (exception != null) { // Handle the error. return; } // Get a set of custom field keys. HashSet<String> keyset = user.keySet(); } });
ユーザー作成時のカスタムフィールドの設定
ユーザーの作成を行うタイミングで、カスタムフィールドの初期値を設定する例を以下に挙げます。
KiiUser のインスタンスを生成した後に set
メソッドを使って、カスタムフィールドを設定することができます。
-
// Create a user. KiiUser.Builder builder = KiiUser.builderWithName("user_123456"); builder.setEmail("user_123456@example.com"); builder.setGlobalPhone("+819012345678"); KiiUser user = builder.build(); // Set custom fields. user.set("age", 30); user.set("score", 0); try { // Register the user. user.register("123ABC"); } catch (AppException e) { // Handle the error. } catch (IOException e) { // Handle the error. }
-
// Create a user. KiiUser.Builder builder = KiiUser.builderWithName("user_123456"); builder.setEmail("user_123456@example.com"); builder.setGlobalPhone("+819012345678"); KiiUser user = builder.build(); // Set custom fields. user.set("age", 30); user.set("score", 0); // Register the user. user.register(new KiiUserCallBack() { @Override public void onRegisterCompleted(int token, KiiUser user, Exception exception) { if (exception != null) { // Handle the error. return; } } }, "123ABC");