我正在做CloudKit JS网络应用。
我在使用比较器IN进行查询时遇到问题。 我尝试使用不同的fieldValue属性值,但没有一个成功。
以下是查询:
var publicIDs = ['TEST_ID'];
var query = {
recordType: 'PublicInfo',
filterBy: [{
fieldName: 'publicID',
comparator: 'IN',
fieldValue: { value: publicIDs}
}]
};
publicDB.performQuery(query) ...
当我这样做时,我得到以下错误结果:
_ckErrorCode: "BAD_REQUEST"
_extensionErrorCode: undefined
_reason: "BadRequestException: Invalid value, expected type STRING but actual value was a list with objects of class java.lang.String"
_recordName: undefined
_redirectURL: undefined
_retryAfter: undefined
_serverErrorCode: "BAD_REQUEST"
_subscriptionID: undefined
_uuid: "5470373b-8665-49a0-8c3c-ebbd4df37bbd"
_zoneID: undefined
message: "BadRequestException: Invalid value, expected type STRING but actual value was a list with objects of class java.lang.String"
如果我更换
fieldValue: { value: publicIDs}
与
fieldValue: { value: publicIDs, type: 'list' }
甚至
fieldValue: { value: publicIDs, type: 'array' }
我收到以下错误结果:
_ckErrorCode: "BAD_REQUEST"
_extensionErrorCode: undefined
_reason: "BadRequestException: Unexpected input"
_recordName: undefined
_redirectURL: undefined
_retryAfter: undefined
_serverErrorCode: "BAD_REQUEST"
_subscriptionID: undefined
_uuid: "ccb1d8bb-03e6-476b-b111-89fe3cddbf6d"
_zoneID: undefined
message: "BadRequestException: Unexpected input"
如果我使用比较器" EQUALS"并且在查询中使用单个值而不是数组,我得到了正确的结果而没有错误。
Cloudkit JS文档说我们可以使用" IN"比较。但是没有更多信息,即如何在查询中指定数组值。
有没有人知道要使用的正确语法?