Open T1002 opened 9 years ago
できますよ! 更新するときに、オブジェクトにはobjectIdが含む必要があるんです! objectIdを指定して、更新するか、queryを使って、オブジェクト取得して更新するか やってみてはいかがですか?
thuydg様
ご回答ありがとうございます。 objectIdを指定してみたのですが、更新されなくなってしまいました。 SDKガイドのオブジェクト操作→オブジェクトの更新の手順にobjectIdの指定を追加するという意味では ないのでしょうか? また、下記ソースの見方として、前半で既存データの指定、done内で更新項目の指定という意味で合っていますでしょうか?
final NCMBObject gameScore = new NCMBObject("GameScore"); gameScore.put("objectId", "abcdefg123"); ←追加箇所 gameScore.put("score", 1337); gameScore.put("playerName", "Sean Plott"); gameScore.put("cheatMode", false); gameScore.put("skills", Arrays.asList("pwnage", "flying")); gameScore.saveInBackground(new SaveCallback() { @Override public void done(NCMBException e) { gameScore.put("score", 1338); gameScore.put("cheatMode", true); gameScore.saveInBackground(); } });
お手数をお掛けして申し訳ありませんが、簡単でもよいのでサンプルソースなどをご提示頂けないでしょうか? queryを使ってオブジェクト取得して更新する方法もできればご教授頂ければ嬉しいです。 宜しくお願い致します。
gameScore.put("objectId", "abcdefg123"); ではないですね、サンプルコードは以下見てみてくださいね!
final NCMBObject gameScore = new NCMBObject("GameScore1205");
gameScore.setObjectId("c73ybO255**");
gameScore.put("score", 8000);
gameScore.put("playerName", "Sean Plott");
gameScore.put("cheatMode", false);
gameScore.put("skills", Arrays.asList("pwnage", "flying"));
gameScore.saveInBackground(new SaveCallback() {
@Override
public void done(NCMBException e) {
}
});
thuydg様
サンプルソースのご提供ありがとうございます。 なるほど、こうやって指定するんですね。 全然見当違いですみません…
ちなみにお陰様でqueryを使った方法は何とか実現できました。 これもヒントを頂かなかったら実現できなかったと思います。 本当にありがとうございました。
良かったですね!! 開発、お互いがんばりましょう!
既にデータストアに登録してあるデータに対して、Androidアプリ上から更新処理(update)のような事は出来るのでしょうか? SDKガイドを参考にしてみたのですが、新しいレコードとして追加(Insert)されてしまいました。 データストアの概念がよくわかっておらず設定ミスかもしれませんが、 押さえるべきポイントなどありましたらご教授下さい。