简体   繁体   English

在Android中保存kinvey对象的最佳方法

[英]The best approach to save kinvey object in Android

I would like to create an apps with backend service in kinvey. 我想在kinvey中创建一个带有后端服务的应用程序。 Previously i use Parse.com as my backend service, due to Parse.com is going to stop their service, so i need to consider another mbaas. 以前我使用Parse.com作为我的后端服务,因为Parse.com将停止其服务,所以我需要考虑另一个mbaas。

i read many reference in internet like http://devcenter.kinvey.com/android/guides/datastore or github, but i still got no idea how to make a simple saving data to kinvey in android apps. 我在http://devcenter.kinvey.com/android/guides/datastore或github等互联网上阅读了很多参考文献,但我仍然不知道如何在android应用程序中简单地将数据保存到kinvey。

Parse.com adding data was easy, just create an new Parse Object like Parse.com添加数据非常容易,只需创建一个新的Parse Object即可

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

Can anyone with experience in Kinvey android apps development give me a short tutorial about saving data? 有在Kinvey android应用程序开发方面有经验的人可以给我一个有关保存数据的简短教程吗? thank in advance! 预先感谢!

It's not that different with Kinvey. Kinvey并没有什么不同。 But, you must define a java class to model your data first. 但是,您必须定义一个Java类来首先对数据建模。 Kinvey records also always include three meta-data fields: a primary key (_id) and _kmd/_acl to store timestamps and ACLs. Kinvey记录也始终包含三个元数据字段:主键(_id)和_kmd / _acl,用于存储时间戳和ACL。 So something like this: 所以像这样:

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
}

In this example, I did not actually add the "username" field to the class. 在此示例中,我实际上并未将“用户名”字段添加到类中。 But you can, just like the "String _id" field. 但是您可以像“ String _id”字段一样。 And add getter/setters for it in your class. 并在您的班级中添加getter / setter。 But if you like to work it the easy way, and follow the Parse example, you can add dynamic fields, like this: 但是,如果您希望以简单的方式进行操作,并遵循“解析”示例,则可以添加动态字段,如下所示:

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

Then, first link a Kinvey collection to a local "AppData" object: 然后,首先将Kinvey集合链接到本地​​“ AppData”对象:

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

and save your "object" to Kinvey: 并将您的“对象”保存到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()); 
    }
});

(for a full syntax, see the devcenter ) (有关完整语法, 请参见devcenter

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM