3

我成功地遵循了 Google Cloud Endpoints 教程,并使用 Endpoints 创建了一个带有 AppEngine 的项目,并从一个 Android 应用程序连接到它。(详见此处:https ://cloud.google.com/endpoints/docs/frameworks/java/get-started-frameworks-java )。我还向应用程序添加了身份验证。

然后我尝试向数据存储区添加一些读写操作,发现当我向本地开发服务器运行我的 android 应用程序时,就像这样开始

dev_appserver.cmd -a 0.0.0.0 .\target\echo-1.0-SNAPSHOT\

本地开发服务器没有使用本地数据存储,它正在使用远程云数据存储。

我可以在 Cloud Console 的生产数据存储中看到正在创建的实体。

没有创建本地“local_db.bin”文件

我还发现,如果我在 Cloud Console 中禁用 Datastore API,我的本地开发服务器会抛出此异常,并在控制台终端窗口中打印:

2017 年 8 月 3 日 5:44:59 EM com.google.api.server.spi.SystemService invokeServiceMethod 严重:调用后端方法 com.google.cloud.datastore.DatastoreException 时发生异常:该项目未启用 Cloud Datastore API XXXXXXX(我在这里编辑了我的项目名称)在 com.google.cloud.datastore.spi.v1.HttpDatastoreRpc.translate(HttpDatastoreRpc.java:128) 在 com.google.cloud.datastore.spi.v1.HttpDatastoreRpc.translate( HttpDatastoreRpc.java:113) 在 com.google.cloud.datastore.spi.v1.HttpDatastoreRpc.lookup(HttpDatastoreRpc.java:163) 在 com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:317) 在com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:313) 在 com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:94) 在 com.google.cloud.datastore.DatastoreImpl.lookup(DatastoreImpl.java:312) 在 com.google.cloud.datastore.DatastoreImpl$ResultsIterator 的 com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:54) .loadResults(DatastoreImpl.java:288) 在 com.google.cloud.datastore.DatastoreImpl$ResultsIterator.(DatastoreImpl.java:284) 在 com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java:274) 在 com .google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java:238) 在 com.google.cloud.datastore.DatastoreHelper.get(DatastoreHelper.java:47) 在 com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl .java:223)datastore.DatastoreImpl$ResultsIterator.loadResults(DatastoreImpl.java:288) 在 com.google.cloud.datastore.DatastoreImpl$ResultsIterator.(DatastoreImpl.java:284) 在 com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java :274) com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java:238) com.google.cloud.datastore.DatastoreHelper.get(DatastoreHelper.java:47) com.google.cloud.datastore。 DatastoreImpl.get(DatastoreImpl.java:223)datastore.DatastoreImpl$ResultsIterator.loadResults(DatastoreImpl.java:288) 在 com.google.cloud.datastore.DatastoreImpl$ResultsIterator.(DatastoreImpl.java:284) 在 com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java :274) com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java:238) com.google.cloud.datastore.DatastoreHelper.get(DatastoreHelper.java:47) com.google.cloud.datastore。 DatastoreImpl.get(DatastoreImpl.java:223)com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java:223) 上的 datastore.DatastoreHelper.get(DatastoreHelper.java:47)com.google.cloud.datastore.DatastoreImpl.get(DatastoreImpl.java:223) 上的 datastore.DatastoreHelper.get(DatastoreHelper.java:47)

我对本地开发服务器应该使用本地数据存储文件而不使用远程云数据存储的理解是否正确?如果是这样,可能是什么原因造成的?

我遵循的原始教程的一部分是通过执行以下操作将端点配置(我尚未完全理解其含义)“部署到 Google 服务管理”中:

gcloud service-management deploy openapi.json

这会不会在我的项目中配置了一些东西,导致它使用远程数据存储 API:s 而不是本地数据存储?

我还看到有一种叫做 Datastore Emulator 的东西。我是否必须以某种方式使用它才能使用本地数据存储?

4

0 回答 0