Hàm
Chức năng | Mô tả |
---|---|
assertFails(4) | Xác nhận lời hứa sẽ bị từ chối bằng "quyền bị từ chối" lỗi.Hữu ích khi xác nhận một yêu cầu nhất định bị từ chối theo Quy tắc bảo mật. Hãy xem ví dụ bên dưới. Hàm này ghi nhận các lỗi bị từ chối cấp quyền của SDK JS cơ sở dữ liệu, Firestore và Bộ nhớ. |
xác nhận đã thành công(pr) | Xác nhận lời hứa sẽ bị từ chối bằng "quyền bị từ chối" error.Đây là hàm không hoạt động trả về lời hứa đã truyền theo nguyên trạng, nhưng có thể được dùng để ghi nhận trong mã kiểm thử để nhấn mạnh rằng một yêu cầu nhất định sẽ thành công (ví dụ: được các quy tắc cho phép). |
khởi tạoTestEnvironment(config) | Khởi động một môi trường kiểm thử để kiểm thử đơn vị quy tắc. Trước tiên, hãy gọi hàm này để thiết lập thử nghiệm.Yêu cầu phải chạy trình mô phỏng. Hàm này cố gắng khám phá các trình mô phỏng đó thông qua các biến môi trường hoặc thông qua trung tâm Trình mô phỏng Firebase nếu máy chủ và cổng không được chỉ định. Bạn nên chỉ định các quy tắc bảo mật cho trình mô phỏng dùng để kiểm thử. Hãy xem ví dụ tối giản bên dưới. |
withFunctionTriggersDisabled(fn) | Chạy hàm thiết lập khi tắt trình kích hoạt Cloud Functions ở chế độ nền. Bạn có thể dùng cách này để nhập dữ liệu vào Cơ sở dữ liệu theo thời gian thực hoặc trình mô phỏng Cloud Firestore mà không cần kích hoạt Chức năng đám mây được mô phỏng cục bộ.Phương pháp này chỉ hoạt động với Firebase CLI phiên bản 8.13.0 trở lên. Phương thức nạp chồng này chỉ hoạt động nếu Host:port của trung tâm trình mô phỏng được chỉ định bằng biến môi trường FIREBASE_EMULATOR_HUB. |
withFunctionTriggersDisabled(hub, fn) | Chạy hàm thiết lập khi tắt trình kích hoạt Cloud Functions ở chế độ nền. Bạn có thể dùng cách này để nhập dữ liệu vào Cơ sở dữ liệu theo thời gian thực hoặc trình mô phỏng Cloud Firestore mà không cần kích hoạt Chức năng đám mây được mô phỏng cục bộ.Phương pháp này chỉ hoạt động với Firebase CLI phiên bản 8.13.0 trở lên. Trung tâm trình mô phỏng phải đang chạy, máy chủ và cổng nào được chỉ định trong phương thức nạp chồng này. |
Giao diện
Giao diện | Mô tả |
---|---|
HostAndPort | Đối tượng chứa tên máy chủ và số cổng của trình mô phỏng. |
RulesTestContext | Ngữ cảnh kiểm thử đại diện cho một ứng dụng. Có thể dùng để truy cập vào trình mô phỏng cho việc kiểm thử đơn vị của quy tắc. |
RulesTestEnvironment | Đối tượng dùng để kiểm soát môi trường kiểm thử đơn vị của quy tắc. Có thể dùng để tạo RulesTestContext cho nhiều tình huống xác thực. |
TestEnvironmentConfig | Cấu hình môi trường kiểm thử đơn vị, bao gồm cả trình mô phỏng. |
Nhập bí danh
Nhập bí danh | Mô tả |
---|---|
EmulatorConfig | Cấu hình cho một trình mô phỏng nhất định. |
TokenOptions (Tuỳ chọn mã thông báo) | Các lựa chọn khác để dùng mã thông báo người dùng mô phỏng cho mục đích thử nghiệm, bao gồm cả thông báo xác nhận quyền sở hữu tuỳ chỉnh do nhà phát triển chỉ định hoặc cơ chế ghi đè không bắt buộc cho các phần tải trọng mã thông báo xác thực Firebase. |
Xác nhậnFails()
Xác nhận lời hứa sẽ bị từ chối bằng "quyền bị từ chối" .
Hữu ích khi xác nhận một yêu cầu nhất định bị từ chối theo Quy tắc bảo mật. Hãy xem ví dụ bên dưới. Hàm này ghi nhận các lỗi bị từ chối cấp quyền trong các SDK JS cơ sở dữ liệu, Firestore và Bộ nhớ.
Chữ ký:
export declare function assertFails(pr: Promise<any>): Promise<any>;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
thứ tư | Cam kết<bất kỳ> | lời hứa được khẳng định |
Trường hợp trả lại hàng:
Cam kết<bất kỳ>
Lời hứa được thực hiện nếu pr bị từ chối và "quyền bị từ chối". Nếu pr bị từ chối do bất kỳ lỗi nào khác hoặc đã được giải quyết, thì lời hứa được trả về sẽ bị từ chối.
Ví dụ
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
Xác nhậnThành công()
Khẳng định lời hứa sẽ thành công.
Đây là một hàm không hoạt động trả về lời hứa đã truyền theo nguyên trạng, nhưng có thể dùng cho mục đích lập tài liệu trong mã kiểm thử để nhấn mạnh rằng một yêu cầu nhất định sẽ thành công (ví dụ: được cho phép theo quy tắc).
Chữ ký:
export declare function assertSucceeds<T>(pr: Promise<T>): Promise<T>;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
thứ tư | Cam kết<T> |
Trường hợp trả lại hàng:
Cam kết<T>
Ví dụ
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
khởi tạo môi trường kiểm thử()
Khởi động một môi trường kiểm thử để kiểm thử đơn vị quy tắc. Trước tiên, hãy gọi hàm này để thiết lập kiểm thử.
Yêu cầu phải chạy trình mô phỏng. Hàm này cố gắng khám phá các trình mô phỏng đó thông qua các biến môi trường hoặc thông qua trung tâm Trình mô phỏng Firebase nếu máy chủ và cổng không được chỉ định. Bạn nên chỉ định các quy tắc bảo mật cho trình mô phỏng dùng để kiểm thử. Hãy xem ví dụ tối giản bên dưới.
Chữ ký:
export declare function initializeTestEnvironment(config: TestEnvironmentConfig): Promise<RulesTestEnvironment>;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
cấu hình | TestEnvironmentConfig | cấu hình cho trình mô phỏng. Hầu hết các trường đều không bắt buộc nếu có thể tìm thấy |
Trường hợp trả lại hàng:
Cam kết<RulesTestEnvironment>
lời hứa được thực hiện trong một môi trường sẵn sàng để thử nghiệm hoặc từ chối nếu xảy ra lỗi.
Ví dụ
const testEnv = await initializeTestEnvironment({
firestore: {
rules: fs.readFileSync("/path/to/firestore.rules", "utf8"), // Load rules from file
// host and port can be omitted if they can be discovered from the hub.
},
// ...
});
withFunctionTriggersDisabled()
Chạy hàm thiết lập khi tắt trình kích hoạt Cloud Functions ở chế độ nền. Bạn có thể dùng tính năng này để nhập dữ liệu vào Cơ sở dữ liệu theo thời gian thực hoặc trình mô phỏng Cloud Firestore mà không cần kích hoạt Chức năng đám mây được mô phỏng cục bộ.
Phương pháp này chỉ hoạt động với Firebase CLI phiên bản 8.13.0 trở lên. Phương thức nạp chồng này chỉ hoạt động nếu Host:port của trung tâm trình mô phỏng được chỉ định bằng biến môi trường FIREBASE_EMULATOR_HUB.
Chữ ký:
export declare function withFunctionTriggersDisabled<TResult>(fn: () => TResult | Promise<TResult>): Promise<TResult>;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
FN | () => Kết quả | Cam kết<TResult> | một hàm có thể đồng bộ hoá hoặc không đồng bộ (trả về một lời hứa) |
Trường hợp trả lại hàng:
Cam kết<TResult>
withFunctionTriggersDisabled()
Chạy hàm thiết lập khi tắt trình kích hoạt Cloud Functions ở chế độ nền. Bạn có thể dùng tính năng này để nhập dữ liệu vào Cơ sở dữ liệu theo thời gian thực hoặc trình mô phỏng Cloud Firestore mà không cần kích hoạt Chức năng đám mây được mô phỏng cục bộ.
Phương pháp này chỉ hoạt động với Firebase CLI phiên bản 8.13.0 trở lên. Trung tâm trình mô phỏng phải đang chạy, máy chủ và cổng nào được chỉ định trong phương thức nạp chồng này.
Chữ ký:
export declare function withFunctionTriggersDisabled<TResult>(hub: {
host: string;
port: number;
}, fn: () => TResult | Promise<TResult>): Promise<TResult>;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
thiết bị trung tâm | { máy chủ lưu trữ: string; cổng: số; } | máy chủ lưu trữ và cổng của Trung tâm trình mô phỏng (ví dụ: {host: 'localhost', port: 4400} ) |
FN | () => Kết quả | Cam kết<TResult> | một hàm có thể đồng bộ hoá hoặc không đồng bộ (trả về một lời hứa) |
Trường hợp trả lại hàng:
Cam kết<TResult>
Cấu hình trình mô phỏng
Cấu hình cho một trình mô phỏng nhất định.
Chữ ký:
export declare type EmulatorConfig = {
rules?: string;
} & (HostAndPort | {});
Tùy chọn mã thông báo
Các lựa chọn khác cho mã thông báo người dùng mô phỏng được dùng cho mục đích thử nghiệm, bao gồm cả thông báo xác nhận quyền sở hữu tuỳ chỉnh do nhà phát triển chỉ định hoặc cơ chế ghi đè không bắt buộc cho các phần tải trọng mã thông báo xác thực Firebase.
Chữ ký:
export declare type TokenOptions = {
iat?: number;
exp?: number;
auth_time?: number;
provider_id?: 'anonymous';
email?: string;
email_verified?: boolean;
phone_number?: string;
name?: string;
picture?: string;
firebase?: {
sign_in_provider: FirebaseSignInProvider;
identities?: {
[provider in FirebaseSignInProvider]?: string[];
};
};
aud?: string;
iss?: string;
[claim: string]: unknown;
uid?: never;
sub?: never;
user_id?: never;
};