diff --git a/src/LiveQuery/QueryTools.js b/src/LiveQuery/QueryTools.js index adbc4deece..8a47f25c79 100644 --- a/src/LiveQuery/QueryTools.js +++ b/src/LiveQuery/QueryTools.js @@ -208,6 +208,11 @@ function matchesKeyConstraints(object, key, constraints) { case '$exists': let propertyExists = typeof object[key] !== 'undefined'; let existenceIsRequired = constraints['$exists']; + if (typeof constraints['$exists'] !== 'boolean') { + // The SDK will never submit a non-boolean for $exists, but if someone + // tries to submit a non-boolean for $exits outside the SDKs, just ignore it. + break; + } if ((!propertyExists && existenceIsRequired) || (propertyExists && !existenceIsRequired)) { return false; }