ニフティクラウドmobile backendに保存したデータを取得する方法が、SDKガイドだけでは分からなかったのでまとめてみます。
オブジェクトIDを指定して取得
データを一意に識別できるオブジェクトIDから取得する場合は下記のようになります。
NCMBQuery<NCMBObject> query = NCMBQuery.getQuery("GameScore");
query.getInBackground("オブジェクトID", new GetCallback<NCMBObject>() {
@Override
public void done(NCMBObject gameScore, NCMBException e) {
if (e != null) {
// エラー
return;
}
// 処理
}
});
検索条件を指定して取得
ある値を持つデータを取得する場合は下記のようになります。
NCMBQuery<NCMBObject> query = NCMBQuery.getQuery("GameScore");
query.whereEqualTo("検索対象の列", "値");
// List<NCMBObject> gameScores = query.find(); // 同期取得する場合
query.findInBackground(new FindCallback<NCMBObject>() { // 非同期取得する場合
@Override
public void done(List<NCMBObject> gameScores, NCMBException e) {
if(e != null) {
// エラー
return;
}
// 処理
}
});
データを1件だけ取得する場合は、find()の代わりにgetFirst()を使用します。
検索条件としては、他にもwhereLessThan()やwhereContainedIn()等があります。
詳しくは、クエリの使い方をご参照ください。