Firebase-tools: Funktionsemulator verwaltet nur den letzten Echtzeit-Datenbank-Trigger

Erstellt am 18. Juli 2019  ·  6Kommentare  ·  Quelle: firebase/firebase-tools

[ERFORDERLICH] Umgebungsinfo


Firebase-Tools:
Feuerbasis: 7.1.1
Knoten: v10.16.0
java: 11.0.2


Plattform:
Mac OS

[ERFORDERLICH] Testfall

Es erscheint in dieser Zeile, firebase-tools/functionsEmulator.ts at dad143c42445056014f6f48cc9dfa13156e3c186 · firebase/firebase-tools · GitHub
, überschreibt die Anforderung zum Hinzufügen eines neuen Triggers die zuvor hinzugefügten Trigger, anstatt der Liste hinzugefügt zu werden

[ERFORDERLICH] Schritte zum Reproduzieren

curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -X PUT -H 'Autorisierung: Inhaber des Inhabers' --data-binary '[{"name":"projects/test -project/locations/_/functions/NewPost","path":"/posts/{ownerId}/{postId}","event":"providers/google.firebase.database/eventTypes/ref.create"," topic":"projects/test-project/topics/NewPost"}]' --compressed
{"status":"ok"}

curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -H 'Autorisierung: Inhaber des Inhabers' --compressed
[{"name":"projects/test-project/locations/_/functions/NewPost","path":"/posts/{ownerId}/{postId}","event":"providers/google.firebase. database/eventTypes/ref.create","topic":"projects/test-project/topics/NewPost"}]

curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -X PUT -H 'Autorisierung: Inhaber des Inhabers' --data-binary '[{"name":"projects/test -project/locations/_/functions/UpdatePost","path":"/posts/{ownerId}/{postId}","event":"providers/google.firebase.database/eventTypes/ref.update"," topic":"projects/test-project/topics/UpdatePost"}]' --compressed
{"status":"ok"}

curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -H 'Autorisierung: Inhaber des Inhabers' --compressed
[{"name":"projects/test-project/locations/_/functions/UpdatePost","path":"/posts/{ownerId}/{postId}","event":"providers/google.firebase. database/eventTypes/ref.update","topic":"projects/test-project/topics/UpdatePost"}]

[ERFORDERLICH] Erwartetes Verhalten

Beide Datenbank-Trigger werden hinzugefügt und im Datenbank-Emulator aufgelistet

[ERFORDERLICH] Tatsächliches Verhalten

Jeder Anruf überschreibt den vorherigen Anruf

emulator-suite database functions bug

Alle 6 Kommentare

@gpfunk danke für die Meldung! Ich werde das jetzt untersuchen und sehen, ob ich es reproduzieren kann.

Bestätigt, dass dies ein Fehler ist, jetzt zu finden, wo er lebt.

Gott Geschwindigkeit :)

Ok, das ist eines dieser Dinge, die "wie beabsichtigt funktionieren, aber immer noch ein Fehler sind". Im Grunde sendet der firebase-tools Code (wie Sie bemerkt haben) ein PUT an die gesamte functionTriggers Ressource für jede Funktion, die sie ersetzt.

Was wir wirklich brauchen, ist eine im RTDB-Emulator implementierte "Upsert"-Operation, die wir mit einem Triggernamen als eindeutige ID aufrufen können. Das bietet Firestore. Wir werden heute darüber sprechen und hoffentlich eine Lösung finden.

Dachte das könnte der Fall sein, danke für die schnelle Rückmeldung!

@IanWyszynski wird versuchen, einen "Upsert" -Vorgang hinzuzufügen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen