0

我正在为一个项目使用谷歌的移动后端启动器,我想自己为一些实体设置键名,而不是使用自动生成的。

如果我在没有后端的情况下执行此操作,我可以执行数据存储文档中描述的操作,该操作创建一个键名为“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() 不应该做我认为它做的事情,但我一直在挖掘代码并且无法找到另一种方法来做我想做的事情。

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

4

1 回答 1

0

我是 MBS 项目的 Google 员工。我重新创建了您的问题,乍一看表明这是我们这边的一个错误。我将使用更新编辑我的回复。

在我们推动修复之前,这种解决方法可以吗?

avg.put("samId", upc)
于 2013-09-04T00:12:16.013 回答