firebase-tools:
basis api: 7.1.1
simpul: v10.16.0
jawa: 11.0.2
Peron:
macOS
Itu muncul di baris ini, firebase-tools/functionsEmulator.ts di dad143c42445056014f6f48cc9dfa13156e3c186 · firebase/firebase-tools · GitHub
, permintaan untuk menambahkan pemicu baru mengesampingkan pemicu sebelumnya yang ditambahkan daripada ditambahkan ke daftar
curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -X PUT -H 'otorisasi: Pemilik pembawa' --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"}]' --dikompresi
{"status":"ok"}
curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -H 'otorisasi: Pemilik pembawa' --dikompresi
[{"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 'otorisasi: Pemilik pembawa' --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"}]' --dikompresi
{"status":"ok"}
curl ' http://localhost :9000/.settings/functionTriggers.json?ns=test-project' -H 'otorisasi: Pemilik pembawa' --dikompresi
[{"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"}]
Kedua pemicu basis data akan ditambahkan dan terdaftar di emulator basis data
Setiap panggilan mengesampingkan panggilan sebelumnya
@gpfunk terima kasih telah melaporkan ini! Saya akan menyelidiki ini sekarang dan melihat apakah saya dapat mereproduksi.
Dikonfirmasi ini adalah bug, sekarang untuk menemukan tempat tinggalnya.
kecepatan tuhan :)
Ok ini adalah salah satu dari hal-hal yang "berfungsi sebagaimana dimaksud tetapi masih merupakan bug". Pada dasarnya kode firebase-tools
(seperti yang Anda perhatikan) mengirim PUT
ke seluruh sumber daya functionTriggers
untuk setiap fungsi, yang menggantikannya.
Yang benar-benar kita butuhkan adalah operasi "upsert" yang diimplementasikan dalam emulator RTDB yang dapat kita panggil menggunakan nama pemicu sebagai ID unik. Inilah yang dimiliki Firestore. Kami akan membicarakannya hari ini dan mudah-mudahan mendapatkan solusi.
Kupikir itu mungkin masalahnya, terima kasih atas umpan baliknya yang cepat!
@IanWyszynski akan mencoba dan menambahkan operasi "upsert".