Лучший способ сохранить объект kinvey в Android

Я хотел бы создать приложения с серверной службой в kinvey. Раньше я использовал Parse.com в качестве серверной службы, так как Parse.com собирается остановить свою службу, поэтому мне нужно рассмотреть другой MBAAS.

я прочитал много ссылок в Интернете, таких как http://devcenter.kinvey.com/android/guides/datastore или github, но я до сих пор не знаю, как сделать простое сохранение данных в kinvey в приложениях для Android.

Parse.com добавить данные было легко, просто создайте новый объект Parse, например

ParseObject object = new ParseObject("booking_details");
object.put("username", struser);

Может ли кто-нибудь с опытом разработки приложений Kinvey для Android дать мне краткое руководство по сохранению данных? заранее спасибо!


person noleavename    schedule 23.02.2016    source источник


Ответы (1)


С Кинви все не так. Но вы должны сначала определить класс Java для моделирования ваших данных. Записи Kinvey также всегда включают три поля метаданных: первичный ключ (_id) и _kmd/_acl для хранения временных меток и списков ACL. Что-то вроде этого:

public class BookingDetails extends GenericJson {
    @Key("_id")
    private String _id; 
    @Key("_kmd")
    private KinveyMetaData meta;
    @Key("_acl")
    private KinveyMetaData.AccessControlList acl;
    public EventEntity(){}  //GenericJson classes must have a public empty constructor
}

В этом примере я фактически не добавлял в класс поле «имя пользователя». Но можно, как и поле "String _id". И добавьте для него геттеры/сеттеры в свой класс. Но если вам нравится работать проще и следовать примеру Parse, вы можете добавить динамические поля, например:

BookingDetails object = new BookingDetails();
object.put("username", struser);

Затем сначала свяжите коллекцию Kinvey с локальным объектом AppData:

AsyncAppData<BookingDetails > bookingdetails = mKinveyClient.appData("bookingDetail", BookingDetails.class);

и сохраните свой «объект» в Kinvey:

bookingdetails.save(object, new KinveyClientCallback<EventEntity>() {
@Override
    public void onFailure(Throwable e) {
        Log.e("TAG", "failed to save event data", e); 
    }
    @Override
    public void onSuccess(EventEntity r) {
        Log.d("TAG", "saved data for entity "+ r.getName()); 
    }
});

(полный синтаксис см. в центре разработки)

person Ivo Janssen    schedule 24.02.2016
comment
у меня есть вопрос, поскольку мои компоненты, такие как EditText, находятся в MainActivity, как мне передать все значения из EditText в класс BookDetails? Спасибо за ответ! Теперь у меня есть некоторая подсказка. - person noleavename; 24.02.2016