【发布时间】:2017-01-14 22:15:10
【问题描述】:
我正在 Android 上开发一个应用程序,并尝试在 Google Cloud Datastore 上保存一些数据。我已经实现了一个 Google App Engine Endpoint 并在其上设置了 Objectify,然后我已经部署到了 App Engine。
最后我在我的 android 项目中编写了一些 AsyncTask 来与 API 进行通信。
通信正常,我的日志中没有显示错误消息,但是当我这样做时(在 App Engine 端点中)
Car car = new Car("black","1200","2016");
ofy().save().entity(car).now();
它执行正确,但我转到我的 Datastore 控制台,它没有任何实体。
如果我这样做了,也一样
List<Car> cars = ofy().load().type(Car.class).list();
我总是得到一个空结果。
那么我的数据保存在哪里?
更新
以前我在我的 Endpoint Api 类 (MyEndpoint.java) 中编写了 Objectify 代码,现在我试图只依赖 Android Endpoint Auto-generation,所以我创建了一个新模型 (@Entity) 和使用了 Android Studio 中内置的“Generate Cloud Endpoint from java class”,所以现在我有了一个新的CarEndpoint。它包含insert 和list api 方法(以及更多)。
所以从应用程序代码中,在 AsyncTask 中,我正在执行以下操作:
Car car = new Car();
car.setYear("2016");
car.setCC("1200");
car.setColor("black");
try {
carApi.insert(car).execute();
} catch (IOException e) {
e.printStackTrace();
}
它被执行并且没有错误被抛出。这是日志:
I/System.out: open:https://app-backend.appspot.com/_ah/api/carApi/v1/car
I/System.out: [CDS]rx timeout:1
I/System.out: [CDS]rx timeout:1
I/System.out: [CDS]rx timeout:20000
I/System.out: [CDS]rx timeout:20000
I/System.out: [CDS]rx timeout:20000
I/System.out: [CDS]rx timeout:20000
I/System.out: [OkHttp] sendRequest<<
但同样,在我的 Datastore 控制台中,没有创建新对象。
再说一遍,我的对象保存在哪里?
更新 2
我仍然没有找到数据的保存位置,但在我更新之后,我现在可以使用list API 方法(自动生成)检索数据。
要从后端轻松使用 API 方法,您可以使用 APIs Explorer 。您可以使用浏览器访问它的地址
https://app-backend.appspot.com/
然后点击“GC Endpoint API Explorer”菜单项的顶部菜单。
数据似乎存储在 API 内部。我可以使用 Google 数据存储控制台查看它们吗?
【问题讨论】:
标签: android google-app-engine google-cloud-endpoints