Firebase Güvenlik Kuralları'nı kullanmaya başlama

Firebase Güvenlik Kuralları; Cloud Firestore, Realtime Database ve Cloud Storage'daki verileriniz için sağlam, tamamen özelleştirilebilir koruma sağlar. Bu kılavuzdaki adımları uygulayarak Kurallar'ı kullanmaya kolayca başlayabilir, verilerinizi güvenli hale getirebilir ve uygulamanızı kötü amaçlı kullanıcılardan koruyabilirsiniz.

Firebase Güvenlik Kuralları dilini anlama

Kural yazmaya başlamadan önce, kullandığınız Firebase ürünlerine özgü Firebase Security Rules dilini incelemek için biraz zaman ayırmanızı öneririz. Cloud Storage, belirli bir yolda erişim koşulu belirleyen match ve allow ifadelerini temel alan Common Expression Language (CEL) üst kümesinden yararlanır.

Firebase Güvenlik Kuralları dilinin temel söz dizimini öğrenerek başlayın.

Kimlik doğrulamayı ayarlama

Henüz yapmadıysanız Firebase Authentication'ı uygulamanıza ekleyin. Firebase Authentication, birçok yaygın kimlik doğrulama yöntemini destekler ve kapsamlı doğrulama özellikleri sunmak için Firebase Güvenlik Kuralları ile entegre olur.

Uygulamanız için ek, özel kimlik doğrulama bilgileri ayarlayabilirsiniz.

Firebase Güvenlik Kuralları ve Firebase Authentication hakkında daha fazla bilgi edinin.

Veri ve kural yapılarınızı tanımlama

Verilerinizi yapılandırma şekliniz, kurallarınızı yapılandırma ve uygulama şeklinizi etkileyebilir. Veri yapılarınızı tanımlarken bunların Kural yapınıza olası etkilerini göz önünde bulundurun.

Örneğin, Cloud Storage'a her kullanıcı için belirli bir rolü gösteren bir alan ekleyebilirsiniz. Böylece kurallarınız bu alanı okuyabilir ve rol tabanlı erişim vermek için kullanabilir. Ayrıca Cloud Firestore veritabanı oluşturabilir, erişim ölçütlerini Cloud Firestore belgelerinde depolayabilir ve bu belgelere Cloud Storage Güvenlik Kuralları'ndan erişebilirsiniz.

Veri ve kural mimarilerinizi tanımlarken, kuralların ürününüze bağlı olarak kademeli olarak nasıl kademeli olarak yansıtıldığını göz önünde bulundurun. Realtime Database ile kurallar yukarıdan aşağıya doğru çalışır. Daha yüzeysel kurallar, daha derin kuralları geçersiz kılar. Bir kural belirli bir yolda okuma veya yazma izni veriyorsa altındaki tüm alt düğümlere de erişim izni verir. Buna karşılık Cloud Firestore ve Cloud Storage'da, kurallar yalnızca veri hiyerarşisinin belirli seviyelerinde uygulanır ve farklı düzeylere erişimi kontrol etmek için açık kurallar yazarsınız.

Kurallarınıza erişme

Mevcut kurallarınızı görüntülemek için Firebase CLI veya Firebase konsolunu kullanın. Yanlışlıkla güncellemelerin üzerine yazmayı önlemek için kurallarınızı aynı yöntemi kullanarak tutarlı bir şekilde düzenlediğinizden emin olun. Yerel olarak tanımlanan kurallarınızın en son güncellemeleri yansıtıp yansıtmadığından emin değilseniz Firebase konsolunda her zaman Firebase Güvenlik Kurallarınızın en son dağıtılan sürümünü gösterir.

Kurallarınıza Firebase konsolundan erişmek için projenizi seçip soldaki gezinme panelinde Depolama'yı tıklayın. Doğru veritabanı veya depolama paketine geldiğinizde Kurallar'ı tıklayın.

Kurallarınıza Firebase CLI'dan erişmek için firebase.json dosyanızda belirtilen kurallar dosyasına gidin.

Temel kuralları yazma

Uygulamanızı geliştirirken ve Kuralları öğrenirken birkaç temel kullanım alanını ele almak için Kuralları uygulamayı deneyin. Örneğin:

  • Yalnızca içerik sahibi: İçeriğe erişimi kullanıcıya göre kısıtlayabilirsiniz.
  • Karma erişim: Yazma erişimini kullanıcıya göre kısıtlayın, ancak herkese açık okuma erişimine izin verin.
  • Özellik tabanlı erişim: Erişimi bir grup veya kullanıcı türüyle kısıtlayın.

Kurallarınızı test etme

Firebase Güvenlik Kurallarınızı Firebase konsolunda oluşturuyorsanız davranışı hızlı bir şekilde doğrulamak için Firebase Kuralları Playground'u kullanabilirsiniz. Ancak, değişikliklerinizi üretime dağıtmadan önce Local Emulator Suite ile daha kapsamlı testler yapmanızı öneririz.

Kuralları dağıt

Kurallarınızı üretime dağıtmak için Firebase konsolunu veya Firebase CLI'ı kullanın. Firebase Güvenlik Kurallarını yönetme ve dağıtma bölümünde verilen adımları uygulayın.