Cloud Firestore Güvenlik Kurallarını kullanmaya başlayın

Cloud Firestore Güvenlik Kuralları ile altyapıyı yönetmek veya sunucu tarafı kimlik doğrulama ve yetkilendirme kodu yazmak zorunda kalmadan harika bir kullanıcı deneyimi oluşturmaya odaklanabilirsiniz.

Güvenlik kuralları, basit ama etkileyici bir biçimde erişim denetimi ve veri doğrulaması sağlar. Kullanıcılarınızın verilerini güvende tutan kullanıcı tabanlı ve rol tabanlı erişim sistemleri oluşturmak için Firebase Authentication'ı Cloud Firestore Güvenlik Kuralları ile birlikte kullanmanız gerekir.

Güvenlik kuralları sürüm 2

Mayıs 2019 itibarıyla, Cloud Firestore güvenlik kurallarının 2. sürümü kullanıma sunulmuştur. Kuralların 2. versiyonu, {name=**} yinelemeli joker karakterlerinin davranışını değiştirir. Koleksiyon grubu sorgularını kullanmayı planlıyorsanız, sürüm 2'yi kullanmanız gerekir. rules_version = '2'; yaparak sürüm 2'ye kaydolmalısınız. güvenlik kurallarınızdaki ilk satır:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

Yazma kuralları

Tüm Cloud Firestore Güvenlik Kuralları, veritabanınızdaki belgeleri tanımlayan ve bu belgelere erişimi kontrol eden ifadelere allow match ifadelerinden oluşur:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

Bir Cloud Firestore mobil/web istemci kitaplığından gelen her veritabanı isteği, herhangi bir veriyi okumadan veya yazmadan önce güvenlik kurallarınıza göre değerlendirilir. Kurallar, belirtilen belge yollarından herhangi birine erişimi reddederse, tüm istek başarısız olur.

Aşağıda bazı temel kural kümeleri örnekleri verilmiştir. Bu kurallar geçerli olmakla birlikte, üretim uygulamaları için önerilmez:

Yetkilendirme gerekli

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Hepsini inkar etmek

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Hepsine izin ver

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

Yukarıdaki örneklerde kullanılan {document=**} yolu, tüm veritabanındaki herhangi bir belgeyle eşleşir. Belirli veri yollarının nasıl eşleştirileceğini ve hiyerarşik verilerle nasıl çalışılacağını öğrenmek için güvenlik kurallarını yapılandırma kılavuzuna devam edin.

Test kuralları

Cloud Firestore, kural kümenizi test etmek için kullanabileceğiniz bir kural simülatörü sağlar. Simülatöre, Firebase konsolunun Cloud Firestore bölümündeki Kurallar sekmesinden erişebilirsiniz.

Kural simülatörü, kimliği doğrulanmış ve kimliği doğrulanmamış okuma, yazma ve silme işlemlerini simüle etmenize olanak tanır. Kimliği doğrulanmış bir isteği simüle ettiğinizde, çeşitli sağlayıcılardan kimlik doğrulama belirteçleri oluşturabilir ve önizleyebilirsiniz. Simüle edilmiş istekler, şu anda dağıtılan kural kümenize değil, düzenleyicinizdeki kural kümesine karşı çalışır.

Kuralları dağıtma

Mobil uygulamanızdan Cloud Firestore'u kullanmaya başlamadan önce güvenlik kurallarını dağıtmanız gerekir. Kuralları Firebase konsolunda veya Firebase CLI'yi kullanarak dağıtabilirsiniz.

Cloud Firestore Güvenlik Kurallarında yapılan güncellemelerin yeni sorguları ve dinleyicileri etkilemesi bir dakika kadar sürebilir. Ancak, değişiklikleri tam olarak yaymak ve aktif dinleyicileri etkilemek 10 dakika kadar sürebilir.

Firebase konsolunu kullanın

İlk kural kümenizi kurmak ve dağıtmak için Firebase konsolunun Cloud Firestore bölümünde Kurallar sekmesini açın.

Kurallarınızı çevrimiçi düzenleyiciye yazın ve ardından Yayınla 'yı tıklayın.

Firebase CLI'yi kullanın

Firebase CLI'yi kullanarak kuralları da dağıtabilirsiniz. CLI'yi kullanmak, uygulama kodunuzla kurallarınızı sürüm kontrolü altında tutmanıza ve mevcut dağıtım sürecinizin bir parçası olarak kuralları dağıtmanıza olanak tanır.

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy your .rules file
firebase deploy --only firestore:rules

Sonraki adımlar