-
Notifications
You must be signed in to change notification settings - Fork 401
Open
Description
The Firebase Admin Node SDK currently does not provide a public API to detect if a value is a FieldValue.increment()
object. This forces developers to rely on internal implementation details like checking for constructor.name === 'NumericIncrementTransform'
, which is fragile and may break with SDK updates.
Current Workaround
// Current approach relies on internal implementation
function hasFieldValueIncrement(value: unknown): boolean {
return (
typeof value === 'object' &&
value.constructor &&
value.constructor.name === 'NumericIncrementTransform'
);
}
Problem
- Fragility: The
NumericIncrementTransform
class name is an internal implementation detail - No Stability Guarantee: This approach may break in future SDK versions
- Lack of Documentation: No official way to detect increment operations
Requested Enhancement
Please provide a public API method to detect FieldValue.increment()
objects, similar to how other Firebase features provide type guards.
Suggested API
import { FieldValue } from 'firebase-admin/firestore';
// Option 1: Static method on FieldValue
FieldValue.isIncrement(value: unknown): value is FieldValue
// Option 2: Dedicated type guard function
import { isIncrement } from 'firebase-admin/firestore';
isIncrement(value: unknown): value is FieldValue
Use Case
This is needed for:
- Data validation pipelines that need to identify increment operations
- Custom diffing systems that handle FieldValue operations differently
- Development tools that analyze Firestore update patterns
- Testing utilities that need to verify increment operations