angular / angular/angularfire

Type Error: toDate() not found on Timestamp fields in 21.0.0-rc.0

Aberta
#3,681 2 comentários 1 reação 0 responsáveis Ver no GitHub
comp: firestore comp: typings needs: more info type: bug version: current (v17+)
Linguagem predominante
TypeScript
Estrelas
7.8k
Forks
2.2k
Merge médio
22h 28min
PRs com merge (30d)
6

Descrição

## Issue

After upgrading to `@angular/fire@21.0.0-rc.0`, TypeScript compilation fails when calling `.toDate()` on `Timestamp` fields from Firestore documents.

## Error

```
TS2339: Property 'toDate' does not exist on type 'FieldValue | WithFieldValue'.
Property 'toDate' does not exist on type 'FieldValue'.
```

## Reproduction

```typescript
import { doc, docData, Timestamp } from '@angular/fire/firestore';

interface Member {
createdAt: Timestamp;
}

const member$ = docData(doc(firestore, 'members/123') as DocumentReference);

member$.subscribe((member) => {
// ERROR: Property 'toDate' does not exist
const date = member?.createdAt.toDate();
});
```

## Environment

- @angular/fire: 21.0.0-rc.0
- @angular/core: 21.0.1
- firebase: 12.6.0 (from 11.8.0)
- TypeScript: 5.9.3

## Analysis

`Timestamp` fields are being typed as `FieldValue | WithFieldValue` instead of just `Timestamp`. The `WithFieldValue` type (meant for writes) is incorrectly being applied to read operations, causing TypeScript to think the field could be `FieldValue`, which doesn't have `.toDate()`.

This appears to be a regression from the Firebase SDK v11→v12 upgrade in this RC.

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece reproduzindo o erro de TypeScript no exemplo fornecido com docData e DocumentReference e, em seguida, rastreie os tipos das operações de leitura do Firestore em torno de Timestamp, FieldValue e WithFieldValue. Compare as versões afetadas do Firebase SDK e identifique onde os resultados de leitura adquirem a união orientada à escrita. Considera-se concluído quando o exemplo compila e os campos Timestamp expõem toDate() sem o tipo FieldValue.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
firebase, typescript
Domínio
database
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
65/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.