Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Yapı birimi testleri

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Firebase Local Emulator Suite, uygulamanızın özelliklerini ve davranışını tam olarak doğrulamayı kolaylaştırır. Ayrıca Firebase Güvenlik Kuralları yapılandırmalarınızı doğrulamak için harika bir araçtır. Yerel bir ortamda birim testlerini çalıştırmak ve otomatikleştirmek için Firebase Öykünücülerini kullanın. Bu belgede özetlenen yöntemler, uygulamanız için Kurallarınızı doğrulayan birim testleri oluştururken ve otomatikleştirirken size yardımcı olacaktır.

Henüz yapmadıysanız, Firebase Emülatörlerini kurun .

Öykünücüyü çalıştırmadan önce

Öykünücüyü kullanmaya başlamadan önce aşağıdakileri aklınızda bulundurun:

  • Öykünücü başlangıçta firebase.json dosyanızın firestore.rules veya 'storage.rules' alanında belirtilen kuralları yükler. Dosya yoksa ve aşağıda açıklandığı gibi loadFirestoreRules veya 'loadStorageRules' yöntemini kullanmazsanız, öykünücü tüm projeleri açık kurallara sahip olarak değerlendirir.
  • Çoğu Firebase SDK'sı öykünücülerle doğrudan çalışırken, yalnızca @firebase/rules-unit-testing kitaplığı Güvenlik Kurallarında alaycı auth destekleyerek birim testlerini çok daha kolay hale getirir. Ayrıca kitaplık, aşağıda listelendiği gibi tüm verileri temizleme gibi öykünücüye özgü birkaç özelliği destekler.
  • Öykünücüler ayrıca İstemci SDK'ları aracılığıyla sağlanan üretim Firebase Auth belirteçlerini kabul edecek ve kuralları buna göre değerlendirecek, bu da uygulamanızı entegrasyon ve manuel testlerde doğrudan öykünücülere bağlamanıza olanak tanır.

Veritabanı öykünücüleri ve üretim arasındaki farklar

  • Açıkça bir veritabanı örneği oluşturmanız gerekmez. Öykünücü, erişilen herhangi bir veritabanı örneğini otomatik olarak oluşturacaktır.
  • Her yeni veritabanı kapalı kurallarla başlatılır, bu nedenle yönetici olmayan kullanıcılar okuyamaz veya yazamaz.
  • Öykünülmüş her veritabanı, Spark planı sınırlarını ve kotalarını uygular (en önemlisi, bu her örneği 100 eşzamanlı bağlantıyla sınırlar).
  • Herhangi bir veritabanı, "owner" dizesini yönetici kimlik doğrulama belirteci olarak kabul eder.
  • Emülatörlerin şu anda diğer Firebase ürünleriyle çalışan etkileşimleri yoktur. Özellikle, normal Firebase Kimlik Doğrulama akışı çalışmıyor. Bunun yerine, bir auth alanı alan rules-unit-testing kitaplığında initializeTestApp() yöntemini kullanabilirsiniz. Bu yöntem kullanılarak oluşturulan Firebase nesnesi, sağladığınız varlık olarak başarıyla kimliği doğrulanmış gibi davranır. null değerini iletirseniz, kimliği doğrulanmamış bir kullanıcı gibi davranır (örneğin, auth != null kuralları başarısız olur).

Gerçek Zamanlı Veritabanı öykünücüsü ile etkileşim kurma

Bir üretim Firebase Realtime Database örneğine firebaseio.com bir alt alanından erişilebilir ve REST API'sine şu şekilde erişebilirsiniz:

https://<database_name>.firebaseio.com/path/to/my/data.json

Öykünücü yerel olarak çalışır ve localhost:9000 adresinde bulunur. Belirli bir veritabanı örneğiyle etkileşim kurmak için, veritabanı adını belirtmek için ns sorgu parametresini kullanmanız gerekir.

http://localhost:9000/path/to/my/data.json?ns=<database_name>

Sürüm 9 JavaScript SDK ile yerel birim testleri çalıştırın

Firebase, hem sürüm 9 JavaScript SDK'sı hem de sürüm 8 SDK'sı ile bir Güvenlik Kuralları birim test kitaplığı dağıtır. Kitaplık API'leri önemli ölçüde farklıdır. Daha akıcı ve öykünücülere bağlanmak için daha az kurulum gerektiren ve böylece üretim kaynaklarının kazara kullanılmasını güvenli bir şekilde önleyen v9 test kitaplığını öneriyoruz. Geriye dönük uyumluluk için v8 test kitaplığını kullanıma sunmaya devam ediyoruz.

Yerel olarak çalışan öykünücüyle etkileşim kurmak için @firebase/rules-unit-testing modülünü kullanın. Zaman aşımları veya ECONNREFUSED hataları alırsanız, öykünücünün gerçekten çalışıp çalışmadığını iki kez kontrol edin.

async/await gösterimini kullanabilmeniz için Node.js'nin en son sürümünü kullanmanızı şiddetle öneririz. Test etmek isteyebileceğiniz davranışların neredeyse tamamı eşzamansız işlevleri içerir ve test modülü Promise tabanlı kodla çalışmak üzere tasarlanmıştır.

v9 Kuralları Birimi Test kitaplığı, öykünücülerin her zaman farkındadır ve üretim kaynaklarınıza asla dokunmaz.

Kitaplığı v9 modüler içe aktarma deyimlerini kullanarak içe aktarırsınız. Örneğin:

import {
  assertFails,
  assertSucceeds,
  initializeTestEnvironment,
  RulesTestEnvironment,
} from "@firebase/rules-unit-testing"

// Use `const { … } = require("@firebase/rules-unit-testing")` if imports are not supported
// Or we suggest `const testing = require("@firebase/rules-unit-testing")` if necessary.

İçe aktarıldıktan sonra, birim testlerinin uygulanması şunları içerir:

  • initializeTestEnvironment çağrısıyla bir RulesTestEnvironment oluşturma ve yapılandırma.
  • Kuralları tetiklemeden test verilerini ayarlama, onları geçici olarak atlamanıza izin veren bir kolaylık yöntemi kullanarak, RulesTestEnvironment.withSecurityRulesDisabled .
  • RulesTestEnvironment.cleanup() veya RulesTestEnvironment.clearFirestore() gibi, test verilerini ve ortamını temizleme çağrılarıyla kancalardan önce/sonra test paketini ve test başına ayarlama.
  • RulesTestEnvironment.authenticatedContext ve RulesTestEnvironment.unauthenticatedContext kullanarak kimlik doğrulama durumlarını taklit eden test senaryolarını uygulama.

Ortak yöntemler ve yardımcı işlevler

Ayrıca v9 SDK'daki öykünücüye özel test yöntemlerine bakın .

initializeTestEnvironment() => RulesTestEnvironment

Bu işlev, kural birimi testi için bir test ortamı başlatır. Test kurulumu için önce bu işlevi çağırın. Başarılı yürütme, öykünücülerin çalışıyor olmasını gerektirir.

İşlev, bir proje kimliği ve öykünücü yapılandırma ayarlarından oluşabilen bir TestEnvironmentConfig tanımlayan isteğe bağlı bir nesneyi kabul eder.

let testEnv = await initializeTestEnvironment({
  projectId: "demo-project-1234",
  firestore: {
    rules: fs.readFileSync("firestore.rules", "utf8"),
  },
});

RulesTestEnvironment.authenticatedContext({ user_id: string, tokenOptions?: TokenOptions }) => RulesTestContext

Bu yöntem, kimliği doğrulanmış bir Kimlik Doğrulama kullanıcısı gibi davranan bir RulesTestContext oluşturur. Döndürülen bağlam aracılığıyla oluşturulan isteklere sahte bir Kimlik Doğrulama belirteci eklenir. İsteğe bağlı olarak, Kimlik Doğrulama belirteci yükleri için özel talepleri veya geçersiz kılmaları tanımlayan bir nesne iletin.

initializeTestEnvironment ile yapılandırılanlar da dahil olmak üzere yapılandırılmış tüm öykünücü örneklerine erişmek için testlerinizde döndürülen test bağlamı nesnesini kullanın.

// Assuming a Firestore app and the Firestore emulator for this example
import { setDoc } from "firebase/firestore";

const alice = testEnv.authenticatedContext("alice", { … });
// Use the Firestore instance associated with this context
await assertSucceeds(setDoc(alice.firestore(), '/users/alice'), { ... });

RulesTestEnvironment.unauthenticatedContext() => RulesTestContext

Bu yöntem, Kimlik Doğrulama aracılığıyla oturum açmamış bir istemci gibi davranan bir RulesTestContext oluşturur. Döndürülen bağlam aracılığıyla oluşturulan isteklere Firebase Auth jetonları eklenmez.

initializeTestEnvironment ile yapılandırılanlar da dahil olmak üzere yapılandırılmış tüm öykünücü örneklerine erişmek için testlerinizde döndürülen test bağlamı nesnesini kullanın.

// Assuming a Cloud Storage app and the Storage emulator for this example
import { getStorage, ref, deleteObject } from "firebase/storage";

const alice = testEnv.unauthenticatedContext();

// Use the Cloud Storage instance associated with this context
const desertRef = ref(alice.storage(), 'images/desert.jpg');
await assertSucceeds(deleteObject(desertRef));

RulesTestEnvironment.withSecurityRulesDisabled()

Güvenlik Kuralları devre dışı bırakılmış gibi davranan bir bağlamla bir test kurulumu işlevi çalıştırın.

Bu yöntem, Güvenlik Kurallarını atlayan bağlamı alan ve bir söz veren bir geri arama işlevi alır. Söz çözüldüğünde/reddedildiğinde bağlam yok edilecektir.

RulesTestEnvironment.cleanup()

Bu yöntem, test ortamında oluşturulan tüm RulesTestContexts yok eder ve temel kaynakları temizleyerek temiz bir çıkışa izin verir.

Bu yöntem, öykünücülerin durumunu hiçbir şekilde değiştirmez. Testler arasında verileri sıfırlamak için uygulama öykünücüsüne özel net veri yöntemini kullanın.

assertSucceeds(pr: Promise<any>)) => Promise<any>

Bu bir test senaryosu yardımcı program işlevidir.

İşlev, bir öykünücü işlemi saran sağlanan Söz'ün Güvenlik Kuralları ihlali olmadan çözüleceğini iddia eder.

await assertSucceeds(setDoc(alice.firestore(), '/users/alice'), { ... });

assertFails(pr: Promise<any>)) => Promise<any>

Bu bir test senaryosu yardımcı program işlevidir.

İşlev, bir öykünme işlemini saran sağlanan Söz'ün Güvenlik Kuralları ihlaliyle reddedileceğini iddia eder.

await assertFails(setDoc(alice.firestore(), '/users/bob'), { ... });

Öykünücüye özgü yöntemler

Ayrıca v9 SDK'daki yaygın test yöntemlerine ve yardımcı program işlevlerine bakın .

Bulut Firestore

Bulut Firestore

RulesTestEnvironment.clearFirestore() => Promise<void>

Bu yöntem, Firestore öykünücüsü için yapılandırılan proje projectId ait olan Firestore veritabanındaki verileri temizler.

RulesTestContext.firestore(settings?: Firestore.FirestoreSettings) => Firestore;

Bu yöntem, bu test bağlamı için bir Firestore örneği alır. Döndürülen Firebase JS Client SDK örneği, istemci SDK API'leri (v9 modüler veya v9 uyumluluğu) ile kullanılabilir.

Gerçek Zamanlı Veritabanı

Gerçek Zamanlı Veritabanı

RulesTestEnvironment.clearDatabase() => Promise<void>

Bu yöntem, Gerçek Zamanlı Veritabanı öykünücüsü için yapılandırılan proje projectId ait olan Gerçek Zamanlı Veritabanındaki verileri temizler.

RulesTestContext.database(databaseURL?: Firestore.FirestoreSettings) => Firestore;

Bu test bağlamı için bir Gerçek Zamanlı Veritabanı örneği alın. Döndürülen Firebase JS Client SDK örneği, istemci SDK API'leri (v9 modüler veya v9 uyumluluğu) ile kullanılabilir. Yöntem, Realtime Database örneğinin bir URL'sini kabul eder. Belirtilirse, URL'den çıkarılan parametrelerle ad alanının öykünülmüş bir sürümü için bir örnek döndürür.

Bulut depolama

Bulut depolama

RulesTestEnvironment.clearStorage() => Promise<void>

Bu yöntem, Cloud Storage öykünücüsü için yapılandırılan proje projectId ait depolama paketlerindeki nesneleri ve meta verileri temizler.

RulesTestContext.storage(bucketUrl?: string) => Firebase Storage;

Bu yöntem, öykünücüye bağlanmak üzere yapılandırılmış bir Depolama örneği döndürür. Yöntem, test için Firebase Storage Bucket'a bir gs:// url'si kabul eder. Belirtilirse, paket adının öykünülmüş bir sürümü için bir Depolama örneği döndürür.

v8 JavaScript SDK ile yerel birim testleri çalıştırın

Firebase Test SDK tarafından öykünücüyle arabirim oluşturmak için kullanılan yöntemleri görmek için bir ürün seçin.

Bulut Firestore

initializeTestApp({ projectId: string, auth: Object }) => FirebaseApp

Bu yöntem, seçeneklerde belirtilen proje kimliğine ve yetkilendirme değişkenine karşılık gelen, başlatılmış bir Firebase uygulaması döndürür. Testlerde kullanmak üzere belirli bir kullanıcı olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

firebase.initializeTestApp({
  projectId: "my-test-project",
  auth: { uid: "alice", email: "alice@example.com" }
});

initializeAdminApp({ projectId: string }) => FirebaseApp

Bu yöntem, başlatılmış bir yönetici Firebase uygulaması döndürür. Bu uygulama, okuma ve yazma işlemleri gerçekleştirirken güvenlik kurallarını atlar. Testlerin durumunu ayarlamak üzere yönetici olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

firebase.initializeAdminApp({ projectId: "my-test-project" });
    

apps() => [FirebaseApp] Bu yöntem, şu anda başlatılmış tüm test ve yönetici uygulamalarını döndürür. Testler arasında veya sonrasında uygulamaları temizlemek için bunu kullanın.

Promise.all(firebase.apps().map(app => app.delete()))

loadFirestoreRules({ projectId: string, rules: Object }) => Promise

Bu yöntem, kuralları yerel olarak çalışan bir veritabanına gönderir. Kuralları dize olarak belirten bir nesne alır. Veritabanınızın kurallarını ayarlamak için bu yöntemi kullanın.

firebase.loadFirestoreRules({
  projectId: "my-test-project",
  rules: fs.readFileSync("/path/to/firestore.rules", "utf8")
});
    

assertFails(pr: Promise) => Promise

Bu yöntem, giriş başarılı olursa reddedilen veya giriş reddedilirse başarılı olan bir söz verir. Bir veritabanının okuma veya yazma işleminin başarısız olup olmadığını belirtmek için bunu kullanın.

firebase.assertFails(app.firestore().collection("private").doc("super-secret-document").get());
    

assertSucceeds(pr: Promise) => Promise

Bu yöntem, giriş başarılı olursa başarılı olan ve giriş reddedilirse reddedilen bir söz verir. Bir veritabanının okuma veya yazma işleminin başarılı olup olmadığını belirtmek için bunu kullanın.

firebase.assertSucceeds(app.firestore().collection("public").doc("test-document").get());
    

clearFirestoreData({ projectId: string }) => Promise

Bu yöntem, yerel olarak çalışan Firestore örneğinde belirli bir projeyle ilişkili tüm verileri temizler. Testlerden sonra temizlemek için bu yöntemi kullanın.

firebase.clearFirestoreData({
  projectId: "my-test-project"
});
   

Gerçek Zamanlı Veritabanı

Gerçek Zamanlı Veritabanı

initializeTestApp({ databaseName: string, auth: Object }) => FirebaseApp

Testlerde kullanmak üzere belirli bir kullanıcı olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen veritabanı adına ve yetkilendirme değişkeni geçersiz kılma işlemine karşılık gelen, başlatılmış bir firebase uygulaması döndürür.

firebase.initializeTestApp({
  databaseName: "my-database",
  auth: { uid: "alice" }
});

initializeAdminApp({ databaseName: string }) => FirebaseApp

Testler için durumu ayarlamak üzere yönetici olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen veritabanı adına karşılık gelen, başlatılmış bir yönetici firebase uygulaması döndürür. Bu uygulama, veritabanına okurken ve yazarken güvenlik kurallarını atlar.

firebase.initializeAdminApp({ databaseName: "my-database" });

loadDatabaseRules({ databaseName: string, rules: Object }) => Promise

Veritabanınızın kurallarını ayarlamak için bunu kullanın.

Kuralları yerel olarak çalışan bir veritabanına gönderir. "VeritabanıAdı"nızı ve "kurallarınızı" dizeler olarak belirten bir options nesnesi alır.

firebase
      .loadDatabaseRules({
        databaseName: "my-database",
        rules: "{'rules': {'.read': false, '.write': false}}"
      });

apps() => [FirebaseApp]

Şu anda başlatılmış tüm test ve yönetici uygulamalarını döndürür.

Testler arasında veya sonrasında uygulamaları temizlemek için bunu kullanın (etkin dinleyicilere sahip başlatılmış uygulamaların JavaScript'ten çıkmasını engellediğini unutmayın):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

Giriş başarılı olursa reddedilen ve giriş reddedilirse başarılı olan bir söz verir.

Bir veritabanının okuma veya yazma işleminin başarısız olduğunu belirtmek için bunu kullanın:

firebase.assertFails(app.database().ref("secret").once("value"));

assertSucceeds(pr: Promise) => Promise

Giriş başarılı olursa başarılı olan ve giriş reddedilirse reddedilen bir söz verir.

Bir veritabanının okuma veya yazma işleminin başarılı olduğunu belirtmek için bunu kullanın:

firebase.assertSucceeds(app.database().ref("public").once("value"));

Bulut depolama

Bulut depolama

initializeTestApp({ storageBucket: string, auth: Object }) => FirebaseApp

Testlerde kullanmak üzere belirli bir kullanıcı olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen depolama paketi adına ve yetkilendirme değişkeni geçersiz kılmaya karşılık gelen, başlatılmış bir firebase uygulaması döndürür.

firebase.initializeTestApp({
  storageBucket: "my-bucket",
  auth: { uid: "alice" }
});

initializeAdminApp({ storageBucket: string }) => FirebaseApp

Testler için durumu ayarlamak üzere yönetici olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen depolama paketi adına karşılık gelen, başlatılmış bir yönetici firebase uygulaması döndürür. Bu uygulama, kovaya okurken ve yazarken güvenlik kurallarını atlar.

firebase.initializeAdminApp({ storageBucket: "my-bucket" });

loadStorageRules({ storageBucket: string, rules: Object }) => Promise

Depolama paketinizin kurallarını ayarlamak için bunu kullanın.

Kuralları yerel olarak yönetilen bir depolama paketine gönderir. "storageBucket" ve "kurallarınızı" dizeler olarak belirten bir options nesnesi alır.

firebase
      .loadStorageRules({
        storageBucket: "my-bucket",
        rules: fs.readFileSync("/path/to/storage.rules", "utf8")
      });

apps() => [FirebaseApp]

Şu anda başlatılmış tüm test ve yönetici uygulamalarını döndürür.

Testler arasında veya sonrasında uygulamaları temizlemek için bunu kullanın (etkin dinleyicilere sahip başlatılmış uygulamaların JavaScript'ten çıkmasını engellediğini unutmayın):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

Giriş başarılı olursa reddedilen ve giriş reddedilirse başarılı olan bir söz verir.

Bir depolama paketinin okuma veya yazma işleminin başarısız olduğunu belirtmek için bunu kullanın:

firebase.assertFails(app.storage().ref("letters/private.doc").getMetadata());

assertSucceeds(pr: Promise) => Promise

Giriş başarılı olursa başarılı olan ve giriş reddedilirse reddedilen bir söz verir.

Bir depolama paketinin okuma veya yazma işleminin başarılı olduğunu belirtmek için bunu kullanın:

firebase.assertFails(app.storage().ref("images/cat.png").getMetadata());

JS SDK v8 için RUT kitaplığı API'si

Firebase Test SDK tarafından öykünücüyle arabirim oluşturmak için kullanılan yöntemleri görmek için bir ürün seçin.

Bulut Firestore

Bulut Firestore

initializeTestApp({ projectId: string, auth: Object }) => FirebaseApp

Bu yöntem, seçeneklerde belirtilen proje kimliğine ve yetkilendirme değişkenine karşılık gelen, başlatılmış bir Firebase uygulaması döndürür. Testlerde kullanmak üzere belirli bir kullanıcı olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

firebase.initializeTestApp({
  projectId: "my-test-project",
  auth: { uid: "alice", email: "alice@example.com" }
});

initializeAdminApp({ projectId: string }) => FirebaseApp

Bu yöntem, başlatılmış bir yönetici Firebase uygulaması döndürür. Bu uygulama, okuma ve yazma işlemleri gerçekleştirirken güvenlik kurallarını atlar. Testlerin durumunu ayarlamak üzere yönetici olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

firebase.initializeAdminApp({ projectId: "my-test-project" });
    

apps() => [FirebaseApp] Bu yöntem, şu anda başlatılmış tüm test ve yönetici uygulamalarını döndürür. Testler arasında veya sonrasında uygulamaları temizlemek için bunu kullanın.

Promise.all(firebase.apps().map(app => app.delete()))

loadFirestoreRules({ projectId: string, rules: Object }) => Promise

Bu yöntem, kuralları yerel olarak çalışan bir veritabanına gönderir. Kuralları dize olarak belirten bir nesne alır. Veritabanınızın kurallarını ayarlamak için bu yöntemi kullanın.

firebase.loadFirestoreRules({
  projectId: "my-test-project",
  rules: fs.readFileSync("/path/to/firestore.rules", "utf8")
});
    

assertFails(pr: Promise) => Promise

Bu yöntem, giriş başarılı olursa reddedilen veya giriş reddedilirse başarılı olan bir söz verir. Bir veritabanının okuma veya yazma işleminin başarısız olup olmadığını belirtmek için bunu kullanın.

firebase.assertFails(app.firestore().collection("private").doc("super-secret-document").get());
    

assertSucceeds(pr: Promise) => Promise

Bu yöntem, giriş başarılı olursa başarılı olan ve giriş reddedilirse reddedilen bir söz verir. Bir veritabanının okuma veya yazma işleminin başarılı olup olmadığını belirtmek için bunu kullanın.

firebase.assertSucceeds(app.firestore().collection("public").doc("test-document").get());
    

clearFirestoreData({ projectId: string }) => Promise

Bu yöntem, yerel olarak çalışan Firestore örneğinde belirli bir projeyle ilişkili tüm verileri temizler. Testlerden sonra temizlemek için bu yöntemi kullanın.

firebase.clearFirestoreData({
  projectId: "my-test-project"
});
   

Gerçek Zamanlı Veritabanı

Gerçek Zamanlı Veritabanı

initializeTestApp({ databaseName: string, auth: Object }) => FirebaseApp

Testlerde kullanmak üzere belirli bir kullanıcı olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen veritabanı adına ve yetkilendirme değişkeni geçersiz kılma işlemine karşılık gelen, başlatılmış bir firebase uygulaması döndürür.

firebase.initializeTestApp({
  databaseName: "my-database",
  auth: { uid: "alice" }
});

initializeAdminApp({ databaseName: string }) => FirebaseApp

Testler için durumu ayarlamak üzere yönetici olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen veritabanı adına karşılık gelen, başlatılmış bir yönetici firebase uygulaması döndürür. Bu uygulama, veritabanına okurken ve yazarken güvenlik kurallarını atlar.

firebase.initializeAdminApp({ databaseName: "my-database" });

loadDatabaseRules({ databaseName: string, rules: Object }) => Promise

Veritabanınızın kurallarını ayarlamak için bunu kullanın.

Kuralları yerel olarak çalışan bir veritabanına gönderir. "VeritabanıAdı"nızı ve "kurallarınızı" dizeler olarak belirten bir options nesnesi alır.

firebase
      .loadDatabaseRules({
        databaseName: "my-database",
        rules: "{'rules': {'.read': false, '.write': false}}"
      });

apps() => [FirebaseApp]

Şu anda başlatılmış tüm test ve yönetici uygulamalarını döndürür.

Testler arasında veya sonrasında uygulamaları temizlemek için bunu kullanın (etkin dinleyicilere sahip başlatılmış uygulamaların JavaScript'ten çıkmasını engellediğini unutmayın):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

Giriş başarılı olursa reddedilen ve giriş reddedilirse başarılı olan bir söz verir.

Bir veritabanının okuma veya yazma işleminin başarısız olduğunu belirtmek için bunu kullanın:

firebase.assertFails(app.database().ref("secret").once("value"));

assertSucceeds(pr: Promise) => Promise

Giriş başarılı olursa başarılı olan ve giriş reddedilirse reddedilen bir söz verir.

Bir veritabanının okuma veya yazma işleminin başarılı olduğunu belirtmek için bunu kullanın:

firebase.assertSucceeds(app.database().ref("public").once("value"));

Bulut depolama

Bulut depolama

initializeTestApp({ storageBucket: string, auth: Object }) => FirebaseApp

Testlerde kullanmak üzere belirli bir kullanıcı olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen depolama paketi adına ve yetkilendirme değişkeni geçersiz kılmaya karşılık gelen, başlatılmış bir firebase uygulaması döndürür.

firebase.initializeTestApp({
  storageBucket: "my-bucket",
  auth: { uid: "alice" }
});

initializeAdminApp({ storageBucket: string }) => FirebaseApp

Testler için durumu ayarlamak üzere yönetici olarak kimliği doğrulanmış bir uygulama oluşturmak için bunu kullanın.

Seçeneklerde belirtilen depolama paketi adına karşılık gelen, başlatılmış bir yönetici firebase uygulaması döndürür. Bu uygulama, kovaya okurken ve yazarken güvenlik kurallarını atlar.

firebase.initializeAdminApp({ storageBucket: "my-bucket" });

loadStorageRules({ storageBucket: string, rules: Object }) => Promise

Depolama paketinizin kurallarını ayarlamak için bunu kullanın.

Kuralları yerel olarak yönetilen bir depolama paketine gönderir. "storageBucket" ve "kurallarınızı" dizeler olarak belirten bir options nesnesi alır.

firebase
      .loadStorageRules({
        storageBucket: "my-bucket",
        rules: fs.readFileSync("/path/to/storage.rules", "utf8")
      });

apps() => [FirebaseApp]

Şu anda başlatılmış tüm test ve yönetici uygulamalarını döndürür.

Testler arasında veya sonrasında uygulamaları temizlemek için bunu kullanın (etkin dinleyicilere sahip başlatılmış uygulamaların JavaScript'ten çıkmasını engellediğini unutmayın):

 Promise.all(firebase.apps().map(app => app.delete()))

assertFails(pr: Promise) => Promise

Giriş başarılı olursa reddedilen ve giriş reddedilirse başarılı olan bir söz verir.

Bir depolama paketinin okuma veya yazma işleminin başarısız olduğunu belirtmek için bunu kullanın:

firebase.assertFails(app.storage().ref("letters/private.doc").getMetadata());

assertSucceeds(pr: Promise) => Promise

Giriş başarılı olursa başarılı olan ve giriş reddedilirse reddedilen bir söz verir.

Bir depolama paketinin okuma veya yazma işleminin başarılı olduğunu belirtmek için bunu kullanın:

firebase.assertFails(app.storage().ref("images/cat.png").getMetadata());