firebase / firebase/firebase-admin-node

[FR] Public API to Detect FieldValue.increment()

Offen
#2,957 2 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @ehsannas Auf GitHub ansehen
api: firestore type: feature request
Vorherrschende Sprache
TypeScript
Sterne
1.7k
Forks
419
Ø Merge
3 T. 10 Std.
Gemergte PRs (30 T.)
16

Beschreibung

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
```typescript
// Current approach relies on internal implementation
function hasFieldValueIncrement(value: unknown): boolean {
return (
typeof value === 'object' &&
value.constructor &&
value.constructor.name === 'NumericIncrementTransform'
);
}
```

## Problem
1. **Fragility**: The `NumericIncrementTransform` class name is an internal implementation detail
2. **No Stability Guarantee**: This approach may break in future SDK versions
3. **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
```typescript
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

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.