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

Menangani dependensi

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

Suatu fungsi diizinkan untuk menggunakan modul Node.js eksternal serta data lokal. Dependensi di Node.js dikelola dengan npm dan diekspresikan dalam file metadata bernama package.json . Runtime Cloud Functions Node.js umumnya mendukung penginstalan menggunakan npm atau yarn .

Untuk menentukan ketergantungan fungsi Anda, tambahkan ke file package.json Anda.

Dalam contoh ini, dependensi tercantum dalam file package.json :

{
  "dependencies": {
    "escape-html": "^1.0.3"
  }
}

Ketergantungan kemudian diimpor dalam fungsi:

JavaScript

const escapeHtml = require('escape-html');

// Return a greeting with the input HTML-escaped.
exports.hello = functions.https.onRequest((req, res) => {
  res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
});

TypeScript

import * as escapeHtml from 'escape-html';

// Return a greeting with the input HTML-escaped.
export let hello = functions.https.onRequest((req, res) => {
  res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
}

Termasuk modul Node.js lokal

Anda juga dapat menyertakan modul Node.js lokal sebagai bagian dari fungsi Anda. Anda dapat melakukannya dengan mendeklarasikan modul Anda di package.json menggunakan file: prefix . Dalam contoh berikut, mymodule mengacu pada nama modul Anda dan mymoduledir adalah direktori yang berisi modul Anda:

{
  "dependencies": {
    "mymodule": "file:mymoduledir"
  }
}

Kode untuk modul lokal ini harus disimpan di tempat lain selain folder node_modules di dalam direktori akar fungsi Anda.

Langkah tambahan untuk TypeScript

TypeScript sangat membantu Anda saat menggunakan pustaka yang memiliki informasi tipe. Ini memungkinkan TypeScript menangkap kesalahan sintaksis dan memungkinkan editor memberi Anda saran pelengkapan otomatis yang lebih baik. Beberapa pustaka, seperti firebase-admin dan firebase-functions , disertakan dengan definisi TypeScript.

Banyak perpustakaan tidak menyediakan definisi TypeScript mereka sendiri. Proyek DeflyTyped menyediakan definisi yang dikelola komunitas untuk pustaka node paling populer. DefiniteTyped menerbitkan definisi ini di bawah nama paket NPM yang sama, tetapi di dalam organisasi "@types". Misalnya, Anda dapat menginstal informasi jenis untuk pustaka uuid dengan yang berikut ini:

npm install @types/uuid

Saat Anda menjadi lebih akrab dengan TypeScript, Anda mungkin menemukan diri Anda menggabungkan kedua pemasangan:

npm install uuid @types/uuid

Ketergantungan jenis harus sama dengan ketergantungan perpustakaan. Misalnya, Anda sebaiknya tidak menyimpan uuid sebagai dependensi normal dan @types/uuid sebagai dependensi dev atau dependensi peer.

Memuat modul Node.js

Gunakan fungsi Node.js require() untuk memuat modul Node.js yang telah Anda instal. Anda juga dapat menggunakan fungsi require() untuk mengimpor file lokal yang Anda terapkan bersama fungsi Anda.

Jika Anda menulis fungsi dalam TypeScript, gunakan pernyataan import dengan cara yang sama untuk memuat modul Node.js yang telah Anda instal.

Menggunakan modul pribadi

Anda dapat menggunakan modul npm pribadi dengan menyediakan pengaturan untuk mengautentikasi dengan registri dalam file .npmrc di direktori fungsi.

Modul pribadi dari Artifact Registry

Repositori paket Artifact Registry Node.js dapat menghosting modul pribadi untuk fungsi Anda. Saat men-deploy ke Cloud Functions, proses build akan secara otomatis menghasilkan kredensial Artifact Registry untuk akun layanan Cloud Build . Anda hanya perlu mencantumkan repositori Artifact Registry di .npmrc Anda tanpa membuat kredensial tambahan. Sebagai contoh:

@SCOPE:registry=https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
//REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME:always-auth=true

Modul pribadi dari repositori lain

Dokumentasi npm menjelaskan cara membuat token akses hanya-baca khusus. Kami tidak menyarankan penggunaan file .npmrc yang dibuat di direktori home karena berisi token baca-tulis. Izin tulis tidak diperlukan selama penerapan, dan dapat menimbulkan risiko keamanan.

Jangan sertakan file .npmrc jika Anda tidak menggunakan repositori pribadi, karena dapat menambah waktu penerapan untuk fungsi Anda.

Format file

Jika Anda menggunakan file .npmrc untuk menyetel token autentikasi khusus, itu harus menyertakan baris yang ditunjukkan di bawah ini. Ganti <YOUR_AUTH_TOKEN> dengan token autentikasi yang disediakan NPM.

//registry.npmjs.org/:_authToken=<YOUR_AUTH_TOKEN>