在Google移动后端入门中使用自定义实体ID

时间:2013-08-30 14:21:28

标签: android google-app-engine google-cloud-endpoints

我正在使用Google的移动后端启动程序进行项目,我希望自己为某些实体设置密钥名称,而不是使用自动生成的实体。

如果我在没有后端的情况下执行此操作,我可以执行类似于数据存储区文档中描述的内容,该文档创建了一个名为“asalieri”的员工实体:

Entity employee = new Entity("Employee", "asalieri");

这是我用来创建实体的代码。我一直在尝试使用CloudEntity.setId()函数。 Upc是一个字符串,当我使用硬编码字符串时它不起作用。

CloudEntity avg = new CloudEntity("Aggregate");
avg.setId(upc);
avg.put("averagePrice", sum/count);
insertAverage(avg);

private void insertAverage(CloudEntity avg) {
    CloudCallbackHandler<CloudEntity> handler = new CloudCallbackHandler<CloudEntity>() {
          @Override
          public void onComplete(final CloudEntity result) {
              Toast.makeText(AddProduct.this, "Average updated.", Toast.LENGTH_LONG).show();
          }

          @Override
          public void onError(final IOException exception) {
            handleEndpointException(exception);
          }
        };

        // execute the insertion with the handler
        getCloudBackend().insert(avg, handler);
}

当我运行应用程序时,除了新实体没有我设置的自定义ID外,一切正常。

我唯一能想到的是setId()不应该做我认为它做的事情但是我一直在挖掘代码并且无法找到另一种方法来做我想要的

有谁知道为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

我是MBS项目的Google员工。我重新创建了你的问题,第一眼看到这是我们身边的一个错误。我会用更新来编辑我的回复。

在推送修复程序之前,这种解决方法是否可行?

avg.put("samId", upc)