我成功地遵循了Google Cloud 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\
本地开发服务器未使用本地数据存储区,它正在使用远程云数据存储区。
我可以在云端控制台中看到正在生产数据存储区中创建的实体。
没有创建本地“local_db.bin”文件
我还发现,如果我在云控制台中禁用数据存储区API,我的本地开发服务器会抛出此异常,打印在控制台终端窗口中:
aug 03,2017 5:44:59 EM com.google.api.server.spi.SystemService invokeServiceMethod 严重:调用后端方法时发生异常 com.google.cloud.datastore.DatastoreException:项目XXXXXXX没有启用Cloud Datastore API(我在这里编辑了我的项目名称) 在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.RetryHelper.runWithRetries(RetryHelper.java:54) 在com.google.cloud.datastore.DatastoreImpl.lookup(DatastoreImpl.java:312) 在com.google.cloud.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)
我的理解是否正确本地开发服务器应使用本地数据存储文件而不使用远程云数据存储?如果是这样,可能导致这种情况?
我遵循的原始教程的一部分是通过执行此操作将“端点配置”(我尚未完全理解其含义)部署到Google Service Management中:
gcloud service-management deploy openapi.json
是否可以在我的项目中配置某些内容,使其使用远程数据存储API:s而不是本地数据存储区?
我还看到有一种称为数据存储模拟器的东西。我是否必须以某种方式使用它才能使用本地数据存储区?