angular / angular/angularfire

compilation errors every time a new version of firebase is used

Offen
#3,245 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
7.8k
Forks
2.2k
Ø Merge
22 Std. 28 Min.
Gemergte PRs (30 T.)
6

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit src/app/activity/activity.service.ts und reproduziere den Kompilierungsfehler, indem du Firebase aktualisierst und dabei yarn.lock beibehältst. Vergleiche die Auflösung der Abhängigkeiten vor und nach dem Löschen von yarn.lock und ermittle anschließend das kompatible Abhängigkeitsverhalten oder die erforderliche Projektänderung, damit das Beispiel nach Firebase-Aktualisierungen konsistent kompiliert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, typescript
Bereich
database, frontend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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