Firebase-Tools:
Feuerbasis: 7.1.1
Knoten: v10.16.0
java: 11.0.2
Plattform:
Mac OS
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
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"}]
Beide Datenbank-Trigger werden hinzugefügt und im Datenbank-Emulator aufgelistet
Jeder Anruf überschreibt den vorherigen Anruf
@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.