1

У меня есть система, основанная на примере мобильного бэкэнда стартера Google, поэтому приложение для чтения и записи приложений Android в хранилище данных и веб-сайт jsp, способный делать подобные вещи.Android-приложение не может видеть объекты хранилища данных, созданные через JSP

В моем JSP я добавляю объект так:

  Entity ent = new Entity(KeyFactory.createKey(table, "CE:" + UUID.randomUUID().toString())); 
      ent.setProperty("_createdAt", new Date()); 
      ent.setProperty("_createdBy", user); 
      ent.setProperty("_kindName", table); 
      // owner??? 
      ent.setProperty("_updatedAt", new Date()); 
      ent.setProperty("_updatedBy", user); 
      ... 
      datastore.put(ent); 

Само приложение создает объекты одного и того же вида, как это:

CloudEntity newPost = new CloudEntity(kindname); 

    newPost.put("propertyname", propertyvalue); 

    CloudBackendMessaging cbm = mProcessingFragment.getCloudBackend(); 
    cbm.insert(newPost, handler); 

Глядя на датасторе в Google Cloud консоль, все объекты выглядят одинаково, и я не вижу различий в фактических форматах и ​​макете данных. Все выглядит хорошо.

При запуске запроса из андроида приложения:

mProcessingFragment.getCloudBackend().listByProperty("kindname", "property", Filter.Op.EQ, datastring, Order.DESC, 1000, Scope.PAST, handler); 

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

PS. Я попытался удалить объект из JSP, и это, безусловно, видно по запросу, так что это не кеширование.

ответ

0

Итак, я, наконец, работал над этим. Сайт создания записей с полями «_createdBy» и «_updatedBy» установлено значение «пользователь», где

User user = userService.getCurrentUser(); 

Они похожи на все остальные строки в консоли разработчика Google, но они на самом деле нет, что вы можете только скажем, отредактировав отдельные поля.

Когда приложение для Android было загружено, я предполагаю, что оно загрузило все записи до этого, а затем остановилось с незарегистрированной ошибкой (моя ошибка в том, что я не сообщал об ошибке).

Исправить было создание записей с user.toString() вместо простого пользователя.

0

Одной из возможных причин такого поведения являются пространства имен. Пространства имен обычно используются для изоляции данных в хранилище данных.

Вы видели, установили ли ваше приложение пространство имен хранилища данных?

+0

Я прошел через документы и проверил облачную консоль для выбора пространства имен в хранилище данных, но у меня их нет, поэтому я должен предположить, что все они используют пространство имен по умолчанию. Я, конечно, не добавил никакого кода для этого в прошлом. Позор, потому что это объяснило бы это. Спасибо за предложение. – Abbeytekmd