Catch up on everthing we announced at this year's Firebase Summit. Learn more

Xử lý sự phụ thuộc

Một hàm được phép sử dụng các mô-đun Node.js bên ngoài cũng như dữ liệu cục bộ. Dependencies trong Node.js được quản lý bằng NPM và bày tỏ trong một tập tin siêu dữ liệu được gọi là package.json . Chức năng đám mây Node.js runtimes thường hỗ trợ cài đặt sử dụng NPM hoặc sợi .

Để xác định sự phụ thuộc đối với chức năng của bạn, thêm nó vào bạn package.json tập tin.

Trong ví dụ này, một sự phụ thuộc được liệt kê trong package.json file:

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

Sau đó, phần phụ thuộc được nhập vào hàm:

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')}!`);
}

Bao gồm các mô-đun Node.js cục bộ

Bạn cũng có thể bao gồm các mô-đun Node.js cục bộ như một phần của chức năng của mình. Bạn có thể đạt được điều này bằng cách tuyên bố mô-đun của bạn trong package.json sử dụng file: tiền tố . Trong ví dụ sau, mymodule đề cập đến tên module của bạn và mymoduledir là thư mục chứa mô-đun của bạn:

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

Mã cho module địa phương này nên được lưu trữ ở đâu đó khác hơn so với node_modules thư mục trong thư mục gốc của chức năng của bạn.

Các bước bổ sung cho TypeScript

TypeScript giúp bạn nhiều nhất khi bạn sử dụng các thư viện có thông tin về kiểu. Điều này cho phép TypeScript bắt lỗi cú pháp và cho phép người chỉnh sửa cung cấp cho bạn các đề xuất tự động hoàn thành tốt hơn. Một số thư viện, giống như firebase-adminfirebase-functions , tàu với các định nghĩa nguyên cảo bao gồm.

Nhiều thư viện không cung cấp định nghĩa TypeScript của riêng họ. Các DefinitelyTyped dự án cung cấp các định nghĩa cộng đồng duy trì trong hầu hết các thư viện nút phổ biến. Chắc chắnTyped xuất bản các định nghĩa này dưới cùng một tên gói NPM, nhưng bên trong tổ chức "@types". Ví dụ, bạn có thể cài đặt các loại thông tin cho uuid thư viện với những điều sau đây:

npm install @types/uuid

Khi bạn trở nên quen thuộc hơn với TypeScript, bạn có thể thấy mình kết hợp cả hai cài đặt:

npm install uuid @types/uuid

Kiểu phụ thuộc phải cùng loại với kiểu phụ thuộc thư viện. Ví dụ, bạn không nên tiết kiệm uuid như một sự phụ thuộc và bình thường @types/uuid như một sự phụ thuộc dev hoặc phụ thuộc đồng đẳng.

Đang tải các mô-đun Node.js

Sử dụng Node.js require() chức năng để tải bất kỳ Node.js mô-đun bạn đã cài đặt. Bạn cũng có thể sử dụng các require() chức năng để nhập các tập tin địa phương mà bạn triển khai cùng với chức năng của bạn.

Nếu bạn đang viết hàm trong nguyên cảo, sử dụng import tuyên bố trong cùng một cách để tải bất kỳ Node.js mô-đun bạn đã cài đặt.

Sử dụng các mô-đun riêng tư

Để sử dụng một mô-đun NPM tin , bạn phải cung cấp thông tin (auth token) cho registry NPM trong một .npmrc tập tin nằm trong thư mục của hàm. Các tài liệu NPM giải thích làm thế nào để tạo ra tùy chỉnh read-only thẻ truy cập. Chúng tôi không khuyến khích sử dụng .npmrc tập tin được tạo ra trong thư mục chính vì nó có chứa một đọc-ghi token. Quyền ghi không được yêu cầu trong quá trình triển khai và có thể gây ra rủi ro bảo mật.

Không bao gồm .npmrc tập tin nếu bạn không sử dụng kho tư nhân, vì nó có thể làm tăng thời gian triển khai cho các chức năng của mình.

Định dạng tệp

Nếu bạn đang sử dụng một .npmrc tập tin để thiết lập một tùy chỉnh auth token, nó phải bao gồm các dòng hiển thị dưới đây. Thay thế <YOUR_AUTH_TOKEN> với NPM-cung cấp thẻ xác thực của bạn.

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