これは、送信する配列の要素が整数ではなく文字列であることを意味します。ID 列は INTEGER のようです。
あなたのプログラムにはそのようなものがあると思いました
preparedStmt.set( '$keys', ["3","4","5","100"]);
したがって、最初の解決策は、INTEGER の配列を送信することです。
preparedStmt.set( '$keys', [3,4,5,100]);
別の解決策は、変数の型を変更することです
let statement = `DECLARE $keys ARRAY(INTEGER); SELECT * FROM ${TABLE_NAME} where id in $keys[]`;
ただし、整数以外の値がある場合、次のエラーが発生します
preparedStmt.set( '$keys', ["3","4","5","100","BAD DATA"]);
ここでエラー
NoSQLArgumentError: [ILLEGAL_ARGUMENT] Failed to create Field Value for variable '$keys': Invalid string for Integer: BAD DATA
この場合、これをクライアント レベルで管理することをお勧めします。
preparedStmt.set( '$keys', [3,4,5,"100","BAD DATA"].map(i=>Number(i)).filter( value => !Number.isNaN(value) ) );