Firebase Güvenlik Kurallarını kullanmaya başlayın

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ı izleyerek, verilerinizi güvence altına alarak ve uygulamanızı kötü niyetli kullanıcılardan koruyarak Kurallar'ı kullanmaya kolayca başlayabilirsiniz.

Firebase Güvenlik Kuralları dilini anlayın

Kural yazmaya başlamadan önce, kullandığınız Firebase ürünlerine özel Firebase Güvenlik Kuralları dilini incelemek için biraz zaman ayırmanız faydalı olacaktır. Gerçek Zamanlı Veritabanı, Kuralları için JavaScript benzeri bir sözdiziminden ve JSON yapısından yararlanır. Alternatif olarak Cloud Firestore ve Cloud Storage, tanımlanmış bir yolda erişim için bir koşul belirleyen match ve allow ifadelerine dayanan Ortak İfade Dilinin (CEL) bir üst kümesinden yararlanır.

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

Kimlik Doğrulamayı Ayarla

Henüz yapmadıysanız kullanıcılarınızı Firebase Authentication ile tanımlayın. Firebase Authentication, birçok yaygın kimlik doğrulama yöntemini destekler ve kapsamlı doğrulama yetenekleri sağlamak 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 Kimlik Doğrulaması hakkında daha fazla bilgi edinin.

Verilerinizi ve kural yapılarınızı tanımlayın

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ız üzerindeki etkilerini göz önünde bulundurun.

Örneğin Cloud Firestore'da her kullanıcı için belirli bir rolü belirten bir alan eklemek isteyebilirsiniz. Daha sonra kurallarınız bu alanı okuyabilir ve bunu rol tabanlı erişim vermek için kullanabilir.

Verilerinizi ve kural mimarilerinizi tanımlarken, herhangi bir kural bir veri kümesine erişim izni veriyorsa Firebase Güvenlik Kurallarının bu veri kümesine erişim izni verdiğini unutmayın. Başka bir deyişle, veri hiyerarşinizde daha yüksek bir düzeyde erişim izni verdiyseniz, bir alt yolda erişimi hassaslaştıramazsınız.

Kurallarınıza erişin

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

Firebase konsolundan kurallarınıza erişmek için projenizi seçin ve ardından Realtime Database , Cloud Firestore veya Storage'a gidin. Doğru veritabanına veya depolama paketine girdikten sonra Kurallar'a tıklayın.

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

Temel kuralları yazın

Uygulamanızı geliştirirken ve Kuralları anlarken, aşağıdaki kullanım örnekleri de dahil olmak üzere birkaç temel Güvenlik Kuralını uygulamayı deneyin:

  • Yalnızca içerik sahibi: İçeriğe erişimi kullanıcıya göre kısıtlayın.
  • Karma erişim: Kullanıcıya göre yazma erişimini kısıtlayın ancak genel okuma erişimine izin verin.
  • Öznitelik tabanlı erişim: Erişimi bir grupla veya kullanıcı türüyle kısıtlayın.

Kurallarınızı test edin

Uygulamanızın davranışını tamamen doğrulamak ve Firebase Güvenlik Kurallarınızı doğrulamak için
yapılandırmalarında, yerel ortamda birim testlerini çalıştırmak ve otomatikleştirmek için Firebase Emulator'ı kullanın.

Firebase Güvenlik Kurallarınızı Firebase konsolunda ayarlıyorsanız davranışı hızlı bir şekilde doğrulamak için Firebase Kural Simülatörünü kullanabilirsiniz. Ancak değişikliklerinizi üretime dağıtmadan önce Firebase Emulator ile daha kapsamlı test yapmanızı öneririz.

Kuralları dağıtma

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