firebase-tools:
firebase: 7.1.1
nó: v10.16.0
java: 11.0.2
Plataforma:
Mac OS
Ele aparece nesta linha, firebase-tools / functionsEmulator.ts em dad143c42445056014f6f48cc9dfa13156e3c186 · firebase / firebase-tools · GitHub
, a solicitação para adicionar um novo gatilho está substituindo os gatilhos anteriores adicionados em vez de ser adicionado à lista
curl ' http: // localhost : 9000 / .settings / functionTriggers.json? ns = test-project' -X PUT -H 'autorização: Proprietário do portador' --data-binary '[{"nome": "projetos / teste -project / locations / _ / functions / NewPost "," path ":" / posts / {ownerId} / {postId} "," event ":" supplies / google.firebase.database / eventTypes / ref.create "," tópico ":" projects / test-project / topics / NewPost "}] '--compressed
{"status": "ok"}
curl ' http: // localhost : 9000 / .settings / functionTriggers.json? ns = test-project' -H 'autorização: Bearer owner' --compressed
[{"name": "projects / test-project / locations / _ / functions / NewPost", "path": "/ posts / {ownerId} / {postId}", "event": "owners / 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 'autorização: Proprietário do portador' --data-binary '[{"nome": "projetos / teste -project / locations / _ / functions / UpdatePost "," path ":" / posts / {ownerId} / {postId} "," event ":" owners / google.firebase.database / eventTypes / ref.update "," tópico ":" projects / test-project / topics / UpdatePost "}] '--compressed
{"status": "ok"}
curl ' http: // localhost : 9000 / .settings / functionTriggers.json? ns = test-project' -H 'autorização: Bearer owner' --compressed
[{"name": "projects / test-project / locations / _ / functions / UpdatePost", "path": "/ posts / {ownerId} / {postId}", "event": "owners / google.firebase. database / eventTypes / ref.update "," topic ":" projects / test-project / topics / UpdatePost "}]
Ambos os gatilhos de banco de dados seriam adicionados e listados no emulador de banco de dados
Cada chamada está substituindo a chamada anterior
@gpfunk obrigado por relatar isso! Vou investigar isso agora e ver se consigo reproduzir.
Confirmado que é um bug, agora para descobrir onde ele mora.
Boa Sorte Vá com Deus :)
Ok, isso é uma daquelas coisas "funcionando como planejado, mas ainda é um bug". Basicamente, o código firebase-tools
(como você notou) está enviando um PUT
para todo o recurso functionTriggers
de cada função, que o substitui.
O que realmente precisamos é de uma operação de "upsert" implementada no emulador RTDB que possamos chamar usando um nome de gatilho como um ID exclusivo. Isso é o que o Firestore tem. Falaremos sobre isso hoje e esperamos encontrar uma solução.
Achei que pudesse ser o caso, obrigado pelo feedback rápido!
@IanWyszynski vai tentar adicionar uma operação "upsert".