Firebase-tools: Fungsi emulator hanya mempertahankan pemicu basis data waktu nyata terakhir

Dibuat pada 18 Jul 2019  ·  6Komentar  ·  Sumber: firebase/firebase-tools

[DIPERLUKAN] Info lingkungan


firebase-tools:
basis api: 7.1.1
simpul: v10.16.0
jawa: 11.0.2


Peron:
macOS

[DIPERLUKAN] Uji kasus

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

[DIPERLUKAN] Langkah-langkah untuk mereproduksi

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"}]

[DIPERLUKAN] Perilaku yang diharapkan

Kedua pemicu basis data akan ditambahkan dan terdaftar di emulator basis data

[DIBUTUHKAN] Perilaku aktual

Setiap panggilan mengesampingkan panggilan sebelumnya

emulator-suite database functions bug

Semua 6 komentar

@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".

Apakah halaman ini membantu?
0 / 5 - 0 peringkat