couchbase/couchbase-lite-android-core — pull request #8 by nvdbleek (2013-10-31 11:17:32+00:00)
Title: Removed assertion on startKey and endKey because they also support non string keys

The method toJSONString is called on the start or end key before they are added to the argument list. And the key column uses the JSON collation. Therefore the start and and key can be any object that is supported by toJSONString(). You probably don't want to use (map objects aka JSON objects) because I don't think that the fields of the object are sorted before they are converted to JSON. But array keys isn't a problem (just remember to add an empty arraylist at the end of the list for the endKey).