ここでは、KiiObject を新規に作成する方法を説明します。KiiObject の内部に格納する JSON ドキュメントを設定する方法は、キーと値のペアの設定 を参照してください。
KiiObject の作成
KiiObject の作成を行うには、保存先 Bucket の object()
メソッドを呼び出してクライアント側で KiiObject を作成した後、save()
メソッドを呼び出します。作成された KiiObject の ID は、Kii Cloud によって自動的に割り当てられます。
-
-
save()
メソッドを実行するのを忘れないでください。save()
メソッドを実行するまで、KiiObject にセットしたキーと値のペアは Kii Cloud に反映されません。
このコードを実行すると、Kii Cloud の指定された Bucket(この例ではユーザースコープの MyBucket
)に KiiObject が作成されます。
ここでは、save()
メソッドの実行前に、set()
メソッドで 3 つのフィールドに値を格納しています。値の格納方法は、キーと値のペアの設定 を参照してください。
ID を指定して KiiObject を作成
作成された KiiObject には自動的に ID が付与されますが、明示的に ID を指定して KiiObject を作成することもできます。
以下に、先ほどと同じ KiiObject を ID を指定して作成する例を挙げます。
-
-
ID は object()
メソッド実行時に指定します。また ID の妥当性を isValidObjectID
メソッドで確認できます(使用可能な ID のパターンについては Javadoc を参照してください)。
明示的に ID を指定した場合は、saveAllFields()
メソッドを実行することにより Kii Cloud 上に KiiObject が新規作成されます。ID 指定の場合は save()
メソッドによる新規作成はできません。
なお、上記の例において "score_userX" という ID を持つ KiiObject がサーバーにすでに存在していた場合は、この KiiObject が上書きされます(必要に応じて saveAllFields
メソッド実行時に false を指定すると、このような上書きを防ぐことが可能です。詳細については Javadoc を参照してください)。
KiiObject アクセスのヒント
アプリケーションスコープに書き込めない:
アプリケーションスコープはすべてのユーザーや、ログイン前の匿名ユーザーの状態でも読み込めますが、書き込むにはユーザーのログインが必要です。もし、アプリでユーザーのログイン操作を省略したい場合は、匿名ユーザーのままアプリケーションスコープの ACL を変更するのではなく、仮ユーザー(Pseudo User)としてログインする設計をおすすめします。詳細は、仮ユーザー(Pseudo User) をご覧ください。
また、アプリケーションスコープの利用にはセキュリティの考慮も必要です。詳細は、セキュリティ をご覧ください。
書き込んだはずの KiiObject が参照できない:
Bucket のスコープが意図したとおりかどうか、ご確認ください。
書き込みと読み込みを異なるスコープで行うと、Bucket 名が同じであっても書き込んだ内容を取得できません。開発者ポータルのデータブラウザを使って読み込んだ場合でも、同様です。
たとえば、Kii.bucket("myBucket")
でアプリケーションスコープに作成したデータは、Kii.user().bucket("myBucket")
でユーザースコープから読み込もうとしても、結果が得られません。