compilation errors every time a new version of firebase is used
- Linguagem predominante
- TypeScript
- Estrelas
- 7.8k
- Forks
- 2.2k
- Merge médio
- 22h 28min
- PRs com merge (30d)
- 6
Descrição
I'm sorry if this issue doesn't actually have anything to do with Angularfire, and if it looks more like a question than an actual issue.
Feel free to close this issue if you feel it doesn't belong here.
I use yarn and have configured renovate bot on my project. So every time a new version of Firebase is released, it makes a commit which upgrades the version. And almost every time it does that (like in [this PR](https://github.com/jnizet/decouvertes-nature/pull/282), which upgrades from firebase 9.8.4 to firebase 9.9.0), the code, which compiled fine before, dosn't compile anymore, with errors such as the following one:
```
Error: Error: src/app/activity/activity.service.ts:185:5 - error TS2322: Type 'Observable<(string | FieldValue)[]>' is not assignable to type 'Observable'.
Type '(string | FieldValue)[]' is not assignable to type 'string[]'.
Type 'string | FieldValue' is not assignable to type 'string'.
Type 'FieldValue' is not assignable to type 'string'.
185 return collectionData(this.animatorCollection).pipe(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186 first(),
~~~~~~~~~~~~~~
...
193 )
~~~~~~~
194 );
```
for code looking like
```ts
export interface Animator {
name: string;
}
// ...
private animatorCollection: CollectionReference;
// ...
suggestAnimators(text: string): Observable> {
const query = text.toLowerCase();
return collectionData(this.animatorCollection).pipe(
first(),
map(animators =>
animators
.filter(a => a.name.toLowerCase().includes(query))
.map(a => a.name)
.sort()
.slice(0, 10)
)
);
}
```
So suddenly, for a reason that I ignore, the compiler doesn't infer the types correctly.
The fix is relatively simple: delete the yarn.lock file, and run yarn again.
But I wonder what I should do to avoid having to do that every time, and would like to understand why this strange behavior happens.
Guia de contribuição
Direção de pesquisa
Comece com src/app/activity/activity.service.ts e reproduza o erro de compilação atualizando o Firebase enquanto mantém o yarn.lock. Compare a resolução de dependências antes e depois de excluir o yarn.lock e, em seguida, determine o comportamento compatível das dependências ou a alteração necessária no projeto para que o exemplo compile de forma consistente após as atualizações do Firebase.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- angular, typescript
- Domínio
- database, frontend
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100