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

The best approach to save kinvey object in Android

我想在 kinvey 中创建一个带有后端服务的应用程序。之前我用Parse.com作为我的后端服务,由于Parse.com他们的服务要停止,所以我需要考虑另一个mbaas。

我在互联网上阅读了很多参考资料,例如 http://devcenter.kinvey.com/android/guides/datastore 或 github,但我仍然不知道如何在 android 应用程序中将数据简单地保存到 kinvey。

Parse.com 添加数据很容易,只需创建一个新的解析对象,例如

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

任何有 Kinvey android 应用程序开发经验的人都可以给我一个关于保存数据的简短教程吗?提前致谢!

Kinvey 并没有什么不同。但是,您必须首先定义一个 java class 来为您的数据建模。 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
}

在这个例子中,我实际上并没有将"username"字段添加到class中。但是你可以,就像 "String _id" 字段一样。并在您的 class 中为其添加 getter/setters。但是如果你喜欢简单的方法,并遵循 Parse 示例,你可以添加动态字段,如下所示:

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

然后,首先 link 一个本地 "AppData" 对象的 Kinvey 集合:

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

并将您的 "object" 保存到 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()); 
    }
});

(完整语法,see the devcenter