Firebase-tools: L'émulateur de fonctions ne conserve que le dernier déclencheur de base de données en temps réel

Créé le 18 juil. 2019  ·  6Commentaires  ·  Source: firebase/firebase-tools

[OBLIGATOIRE] Infos environnement


firebase-tools:
base de feu : 7.1.1
nœud : v10.16.0
Java : 11.0.2


Plate-forme:
macOS

[OBLIGATOIRE] Scénario de test

Il apparaît à cette ligne, firebase-tools/functionsEmulator.ts à dad143c42445056014f6f48cc9dfa13156e3c186 · firebase/firebase-tools · GitHub
, la demande d'ajout d'un nouveau déclencheur remplace les précédents déclencheurs ajoutés au lieu d'être ajouté à la liste

[OBLIGATOIRE] Étapes à reproduire

curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -X PUT -H 'authorization: Bearer owner' --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":"d'accord"}

curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -H 'authorization: Bearer owner' --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 'authorization: Bearer owner' --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":"d'accord"}

curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -H 'authorization: Bearer owner' --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"}]

[OBLIGATOIRE] Comportement attendu

Les deux déclencheurs de base de données seraient ajoutés et répertoriés dans l'émulateur de base de données

[OBLIGATOIRE] Comportement réel

Chaque appel annule l'appel précédent

emulator-suite database functions bug

Tous les 6 commentaires

@gpfunk merci d'avoir signalé cela ! Je vais étudier cela maintenant et voir si je peux reproduire.

Confirmé qu'il s'agit d'un bug, maintenant pour trouver où il vit.

dieu vitesse :)

Ok, c'est l'une de ces choses "fonctionnant comme prévu mais toujours un bug". Fondamentalement, le code firebase-tools (comme vous l'avez remarqué) envoie un PUT à l'ensemble functionTriggers ressource

Ce dont nous avons vraiment besoin, c'est d'une opération "upsert" implémentée dans l'émulateur RTDB que nous pouvons appeler en utilisant un nom de déclencheur comme identifiant unique. C'est ce que Firestore a. Nous en parlerons aujourd'hui et espérons trouver une solution.

Je pensais que c'était peut-être le cas, merci pour le retour rapide !

@IanWyszynski va essayer d'ajouter une opération "upsert".

Cette page vous a été utile?
0 / 5 - 0 notes