サンプルの解析サーバー ( https://github.com/ParsePlatform/parse-server-example ) をデスクトップにインストールし、それをテストするための簡単なアプリを作成しました。
私のアプリはオブジェクトをサーバーに保存し、オブジェクトを取得して、mTextView の値をオブジェクトの値に設定します。
問題は、このコードをサーバーからデータを取得しようとすると、機能することです:
query.getInBackground("5K7N8a8Dmd", new GetCallback<ParseObject>() ...
(curlでオブジェクトIDを取得)
しかし、これを試してみると(curlを使用せずにオブジェクトIDを取得するため):
gameScore.saveInBackground(new SaveCallback() {
public void done(ParseException e) {
if (e == null) {
objectId = gameScore.getObjectId();
} else {
Log.e("saveInBackground", getErrorMessage(e));
}
}
});
...
query.getInBackground(objectId, new GetCallback<ParseObject>() ...
うまくいきません。
ログキャット:
E/getInBackground﹕ no results found for query - code: 101
MainActivity.java
public class MainActivity extends Activity {
public TextView mTextView;
public String objectId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.text_view);
Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
.applicationId(Constants.APP_ID)
.server(Constants.SERVER_URL)
.build()
);
final ParseObject gameScore = new ParseObject("Foo1234");
gameScore.put("score", 5000);
gameScore.saveInBackground(new SaveCallback() {
public void done(ParseException e) {
if (e == null) {
objectId = gameScore.getObjectId();
} else {
Log.e("saveInBackground", getErrorMessage(e));
}
}
});
ParseQuery<ParseObject> query = ParseQuery.getQuery("Foo1234");
query.getInBackground(objectId, new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (e == null) {
mTextView.setText(Integer.toString(gameScore.getInt("score")));
} else {
Log.e("getInBackground", getErrorMessage(e));
}
}
});
}
public String getErrorMessage(ParseException e) {
return e.getMessage() + " - code: " + e.getCode();
}
}
定数.java
public class Constants {
public static String SERVER_URL = "http://192.168.1.14:1337/parse/";
public static String APP_ID = "myAppId";
}
前もって感謝します。