4

私はCloudKit JS Webアプリをやっています。

コンパレーター 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」コンパレーターを使用できると記載されています。しかし、それ以上の情報はありません。つまり、クエリで配列値を指定する方法です。

使用する正しい構文を知っている人はいますか?

4

0 に答える 0