Tanda Tangan:
export interface RulesTestEnvironment
Properti
Properti | Jenis | Deskripsi |
---|---|---|
emulator | { database?: HostAndPort; firestore?: HostAndPort; penyimpanan?: HostAndPort; } | Salinan hanya baca dari konfigurasi emulator yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian. |
projectId | string | Project ID yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian. |
Metode
Metode | Deskripsi |
---|---|
authenticatedContext(user_id, tokenOptions) | Buat RulesTestContext yang berperilaku seperti pengguna Firebase Auth yang diautentikasi.Permintaan yang dibuat melalui konteks yang ditampilkan akan memiliki token Firebase Auth tiruan yang dilampirkan. |
pembersihan() | Di bagian paling akhir kode pengujian, panggil fungsi pembersihan. Musnahkan semua RulesTestContexts yang dibuat di lingkungan pengujian dan bersihkan resource yang mendasarinya, sehingga memungkinkan keluar secara bersih.Metode ini tidak mengubah status di emulator dengan cara apa pun. Untuk mereset data antarpengujian, lihat clearDatabase() , clearFirestore() , dan clearStorage() . |
clearDatabase() | Menghapus semua data di namespace emulator Realtime Database. |
clearFirestore() | Hapus data di Firestore yang termasuk dalam projectId di emulator Firestore. |
clearStorage() | Menghapus metadata dan file Storage di semua bucket di emulator Storage. |
unauthenticatedContext() | Buat RulesTestContext yang berperilaku seperti klien yang TIDAK login melalui Firebase Auth.Permintaan yang dibuat melalui konteks yang ditampilkan tidak akan memiliki token Firebase Auth yang dilampirkan. |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
Salinan hanya baca dari konfigurasi emulator yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian.
Tanda Tangan:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
Project ID yang ditentukan atau ditemukan saat pembuatan lingkungan pengujian.
Tanda Tangan:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
Buat RulesTestContext
yang berperilaku seperti pengguna Firebase Auth yang diautentikasi.
Permintaan yang dibuat melalui konteks yang ditampilkan akan memiliki token Firebase Auth tiruan yang dilampirkan.
Tanda Tangan:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
user_id | string | ID Pengguna milik pengguna. Menentukan nilai "user_id" dan "sub" pada token |
tokenOptions | TokenOptions | klaim kustom atau penggantian untuk payload token Firebase Auth |
Hasil:
Contoh
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
Di bagian paling akhir kode pengujian, panggil fungsi pembersihan. Musnahkan semua RulesTestContexts yang dibuat di lingkungan pengujian dan bersihkan resource yang mendasarinya, sehingga memungkinkan keluar secara bersih.
Metode ini tidak mengubah status di emulator dengan cara apa pun. Untuk mereset data antarpengujian, lihat clearDatabase()
, clearFirestore()
, dan clearStorage()
.
Tanda Tangan:
cleanup(): Promise<void>;
Hasil:
Promise<void>
RulesTestEnvironment.clearDatabase()
Menghapus semua data di namespace emulator Realtime Database.
Tanda Tangan:
clearDatabase(): Promise<void>;
Hasil:
Promise<void>
RulesTestEnvironment.clearFirestore()
Hapus data di database Firestore default untuk projectId
di emulator Firestore.
Tanda Tangan:
clearFirestore(): Promise<void>;
Hasil:
Promise<void>
RulesTestEnvironment.clearStorage()
Hapus file dan metadata Storage dalam bucket aktif di emulator Storage.
Tanda Tangan:
clearStorage(): Promise<void>;
Hasil:
Promise<void>
RulesTestEnvironment.unauthenticatedContext()
Buat RulesTestContext
yang berperilaku seperti klien yang TIDAK login melalui Firebase Auth.
Permintaan yang dibuat melalui konteks yang ditampilkan tidak akan memiliki token Firebase Auth yang dilampirkan.
Tanda Tangan:
unauthenticatedContext(): RulesTestContext;
Hasil:
Contoh
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Tanda Tangan:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
callback | (konteks: RulesTestContext) => Promise<void> |
Hasil:
Promise<void>