I am just beginning to use this service on iOS. It compiles and links fine, initializes and the user is activated correctly.
In my SessionTime environment, I able to add and receive objects successfully but only the core three fields are created and returned (_id, _acl, _kmd). The other fields are returned as nil and the browser does not show that the columns have been created.
I have used the example code snippets from the documentation (using the "Event" object) and the same problem occurs.
No errors are returned when either saving or querying.
Is there anything in my environment that may cause fields to not dynamically add?
When you "add columns" in the databrowser, that's not "Actually" doing anything. The databrowser gives the impression that we are a service that ties into a backend that uses a relational database and the databrowser is using rows / columns to display the rows and columns of a relational style database. The reality is that we are running on Mongo, which runs on "flat files", which are simply json documents. Things are sorted into key / value pairs.
So this means, if you were to create a new "row" in the data browser and it was given the id 55071d123456 and then added a column called "Phone Number" and then queried the object, you would not see a phone number field when you did a get request on that object. However if you double clicked the resulting phone number field that is displayed in the browser and saved a number in it, you should get it returned in your object.
As you can see here, I have made a collection where the name is testingStuff and it contains a single "row" of data, the id is: 56ddb938065a2c7a6328da3e But we can see that the stuff / stuff2 "columns" are empty right now.
If I shoot over to the API console and run a query on it I don't see anything in either of those fields
If I go back and add values to those "columns" that were created:
And then perform the same call from the api console:
We can now see the JSON pairs for the fields which we added.
The takeaways from this are:
1. You don't need to alter your "schema" before you start using new pieces of data, you simply need to save an object with that new format, and the backend will know how to handle it.
2. Adding columns in the databrowser can be misleading. You're not actually changing anything until you add data to the column you've created (and if you leave the page simply adding a column won't even be saved).
3. As a result of the two points above, when you want to start using a different data format for an object, you first need to save the new object before changes populate to the databrowser, not the other way around.
Does all this make sense?
Please let me know if you have any other questions about this.