我正在为一个项目使用谷歌的移动后端启动器,我想自己为一些实体设置键名,而不是使用自动生成的。
如果我在没有后端的情况下执行此操作,我可以执行数据存储文档中描述的操作,该操作创建一个键名为“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() 不应该做我认为它做的事情,但我一直在挖掘代码并且无法找到另一种方法来做我想做的事情。
有谁知道为什么这不起作用?