Использование пользовательских идентификаторов объектов с Google Mobile Backend Starter

Я использую мобильный бэкэнд-стартер 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);
}

Когда я запускаю приложение, все работает нормально, за исключением того, что новый объект не имеет пользовательского идентификатора, который я установил.

Единственное, о чем я могу думать, это то, что setId() не должен делать то, что я думаю, но я копался в коде и не смог найти другого способа сделать то, что я хочу.

Кто-нибудь знает, почему это не работает?


person Sam    schedule 30.08.2013    source источник


Ответы (1)


Я работаю в Google над проектом MBS. Я воссоздал вашу проблему и на первый взгляд показывает, что это ошибка на нашей стороне. Я отредактирую свой ответ с обновлениями.

Подойдет ли этот обходной путь, пока мы не выложим исправление?

avg.put("samId", upc)
person Stuart    schedule 04.09.2013