我正在做一个 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”比较器。但是没有更多信息,即如何在查询中指定数组值。
有谁知道正确的语法使用?