Фильтр запросов Cloudkit JS by recordName выдает ошибку

Работаю над сайтом, на котором я передаю recordName на вторую страницу через URL. Я вижу правильный синтаксический анализ recordName {data} и затем пытаюсь использовать его для запроса с помощью filterBy следующим образом:

        var query = { recordType: 'Events', 
            filterBy: [{
                fieldName: 'recordName',
                comparator: 'EQUALS',
                fieldValue: {value: [{data}]
                }
            }]
         };

         return publicDB.performQuery(query).then(function (response) {
            if(response.hasErrors) {
                console.error(response.errors[0]);
                return;
            }

            var records = response.records;
            var numberOfRecords = records.length;
            if (numberOfRecords === 0) {
                console.error('No matching items');
                return;
            }

            self.events(records);

Этот подход и другие попытки указать fieldName в качестве recordName - все выдают одно и то же сообщение об ошибке:

    ckErrorCode:"NOT_FOUND"
    extensionErrorCode:undefined
    reason:"ObjectNotFoundException: no such field recordName"
    recordName:undefined
    redirectURL:undefined
    retryAfter:undefined
    serverErrorCode:"NOT_FOUND"
    subscriptionID:undefined
    uuid:"7ff93475-a22c-4ae2-859f-4a219e0253b1"
    zoneID:undefined
    message:"ObjectNotFoundException: no such field recordName"

Это кажется странным, но, возможно, это нечто очевидное, что легко исправить.

Любые предложения приветствуются.

1 ответ

recordName это системное поле и ниже, как вы должны запросить для них:

var query = {
    recordType: 'Events',
    filterBy: [{
        comparator: 'EQUALS',
        systemFieldName: 'recordName',
        fieldValue: {
            value: 'the-name-of-the-record'
        }
    }]
}

Из-за известной ошибки, вы должны добавить дополнительную оболочку вокруг recordName:

var query = {
    recordType: 'Events,
    filterBy: [{
        comparator: 'EQUALS',
        systemFieldName: 'recordName',
        fieldValue: {
            value: {
                recordName: 'the-name-of-the-record'
            }
        }
    }]
}
Другие вопросы по тегам