Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Buat dan tangani pemicu acara khusus

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Dengan Cloud Functions v2, Anda dapat memicu fungsi sebagai respons terhadap peristiwa khusus . Ini adalah peristiwa yang disediakan oleh penyedia peristiwa khusus atau tambahan, berbeda dengan peristiwa Firebase yang secara native didukung oleh SDK Firebase untuk Cloud Functions.

Selama pratinjau publik, peristiwa khusus yang tersedia disediakan oleh Firebase Extensions. Anda dapat memasang ekstensi di aplikasi Anda, lalu merespons peristiwa khusus dalam alur dasar ini:

  1. Pasang ekstensi yang menyediakan satu atau beberapa peristiwa khusus.
  2. Tangani jenis peristiwa dengan menerapkan pengendali onCustomEventPublished . Dalam fungsi ini, parsing payload yang dikembalikan di objek CloudEvent , dan lakukan logika kustom apa pun yang dibutuhkan aplikasi Anda.

Misalnya, ekstensi yang dirancang untuk membantu aplikasi memproses gambar besar mungkin memancarkan peristiwa saat selesainya pengubahan ukuran gambar. Aplikasi dengan ekstensi ini terpasang dapat menangani acara penyelesaian dengan memperbarui tautan di aplikasi untuk menunjuk ke versi gambar yang diubah ukurannya.

Semua peristiwa khusus sesuai dengan format peristiwa JSON CloudEvents . Untuk informasi penting seperti daftar acara yang tersedia dan detail payload acara, lihat dokumentasi ekstensi tertentu.

Menangani acara khusus

Setelah Anda menemukan acara khusus yang tersedia dari ekstensi yang diinstal, Anda dapat menangani acara itu dengan
penangan onCustomEventPublished . Pertama, impor handler ini dari Eventarc SDK bersama dengan Firebase Admin SDK untuk Node.js untuk logika kustom Anda dan SDK logger untuk menangani error:

const {onCustomEventPublished} = require("firebase-functions/v2/eventarc");
const logger = require("firebase-functions/logger");
const {initializeApp} = require("firebase-admin/app");
const {getFirestore} = require("firebase-admin/firestore");

Dalam kode fungsi Anda, berikan nama acara seperti yang ditunjukkan untuk contoh fungsi onimageresized :

exports.onimageresized = onCustomEventPublished(
    "firebase.extensions.storage-resize-images.v1.complete",
    (event) => {
      logger.info("Received image resize completed event", event);
      // For example, write resized image details into Firestore.
      return getFirestore()
          .collection("images")
          .doc(event.subject.replace("/", "_")) // original file path
          .set(event.data); // resized images paths and sizes
    });

Untuk setiap ekstensi tertentu, payload yang dikembalikan dalam objek kejadian menyediakan data yang dapat Anda gunakan untuk menjalankan logika kustom untuk alur aplikasi Anda. Dalam hal ini, fungsi tersebut menggunakan Admin SDK untuk menyalin metadata tentang gambar yang diubah ukurannya ke koleksi di Cloud Firestore, memperoleh nama file dari subject yang disediakan oleh peristiwa, dan menyimpan metadata dari data yang disediakan oleh peristiwa.

Menangani acara di saluran non-default

Contoh di atas mengasumsikan bahwa acara penyelesaian gambar dipublikasikan di saluran default, di lokasi default us-central1 seperti yang ditentukan dalam ekstensi. Dalam kasus di mana acara khusus diterbitkan pada saluran non-default, Anda harus menentukan saluran dalam kode fungsi Anda. Misalnya, jika Anda ingin menangani acara yang dipublikasikan di saluran non-default untuk lokasi us-west1 , Anda perlu menentukan saluran seperti yang ditunjukkan:

import { onCustomEventPublished } from "firebase-functions/v2/eventarc";

export const func = onCustomEventPublished(
    {
      eventType: "firebase.extensions.storage-resize-images.v1.complete",
      channel: "locations/us-west1/channels/firebase",
      region: "us-west1",
    },
    (event) => { ... });