firebase / firebase/firebase-admin-node

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

Đang mở
#2,957 2 bình luận 0 reaction 1 người được giao Được @ehsannas nhận Xem trên GitHub
api: firestore type: feature request
Ngôn ngữ chính
TypeScript
Star
1.7k
Fork
419
Merge trung bình
3 ngày 10 giờ
Pull request đã merge (30 ngày)
16

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.