Start a new topic

Documentation Problems: 1) KCSLinkedAppdataStore typo, 2) Incomplete Data Store query doc. 3) Incomplete ACL read/write settings

 The user guide and API reference documentation require some serious upgrading. A lot of them contains incomplete and confusing statements, both from technical contents and grammar. There are a lot of paragraphs that do not make sense or very difficult to understand. This topic lists three of them.

1. KCSLinkedAppdataStore API reference typo.

The document says "To make use of this, have an entity map a UIImage property to the KCSFileStoreCollectionName in - [KCSPersistable hostToKinveyPropertyMapping], and save that entity."

This is wrong because it does not work. This needs to be corrected and an example needs to be shown.

2. Data store query with the following code is incomplete and the result "objectsOrNil' does not return the appropriate object that is being queried.

store.queryWithQuery(    KCSQuery(),    withCompletionBlock: { (objectsOrNil: [AnyObject]!, errorOrNil: NSError!) -> Void in    },    withProgressBlock: nil)

It is not clear what 'objectsOrNil' is being returned as because we cannot access the members of the class.

Turns out, the 'objectsOrNil' has to be downcast to its class in array format. For example, if the class is named "Image()" you need a line:

var queryResult = objectsOrNil as! [Image]

It took me hours to figure this out. This needs to be explained in the guide.

3. The KCSMetadata class is very confusing. There are references to it in the Data Store, Files and Security guides and the KCSMetadata API reference but they are wrong or inconsistent with each other. For example, the Files guide and KCSMetadata API reference only list ACL setting that can only be set to either the creator or global read/write and nothing in between. This all or nothing option is not useful.

In addition, the KCSMetadata API reference has a "readers" and "writers" parameters that are read-only and returns an array of users with read or write permissions. This makes no sense. If there is no way to set individual permissions, there is no need to have this array.

However, in the Security guide, there is a reference, though not explained, where you can edit the ACL parameters with readers and writers array.

let myFriend: KCSUser // set to a valid KCSUser
event.metadata.readers.addObject(myFriend.userId)//add 'myFriend' to the writers list as well
.metadata.writers.addObject(myFriend.userId)//... and then save the event

This conflicts with the KCSMetadata API reference. Also, there is no mention of this at all in the Files and Data Store guides when discussing the metadata. This would have been extremely useful. I tried these options and they work for Collections as well as Files uploads!


1 Comment

I would just like to provide feedback. I think Kinvey can potentially be a good service but the documentation requires serious upgrading. I'm sorry to bring up a competitor, but I used to use Parse and they were great. It's too bad they have to close down service after being acquired by Facebook. They provide a comprehensive set of documentation to perform many functions with tons of examples and, best of all, they all just work! All we need to do as a developer is to copy and paste the given codes and change the relevant parameters. That is not the case with Kinvey. Many of the codes don't work or they are lacking in explanation what was required to get it to work. I just provided 3 examples above but there are many more.

User experience is important to get us hooked in. Documentation is a huge component. Thanks.


Login or Signup to post a comment