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

Cloud Firestore Security Rules ile altyapıyı yönetmek veya sunucu tarafı kimlik doğrulama ve yetkilendirme kodu yazmak zorunda kalmadan mükemmel bir kullanıcı deneyimi oluşturmaya odaklanabilirsiniz.

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





Yapay zeka desteği için aşağıdaki istemi yapay zeka kodlama temsilcinize (ör. Android Studio'da Gemini, Antigravity, Claude Code, Codex ve Cursor) kopyalayın. İstemi özelleştirebilir ve temsilcinizle birlikte üzerinde çalışabilirsiniz. Ayrıntılı kurulum bilgileri için Firebase aracı becerileri sayfasını ziyaret edin.

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Firestore data.

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. sürümü, özyinelemeli joker karakterlerin {name=**} davranışını değiştirir. Koleksiyon grubu sorgularını kullanmayı planlıyorsanız 2. sürümü kullanmanız gerekir. Güvenlik kurallarınızın ilk satırına rules_version = '2'; ifadesini ekleyerek 2. sürümü etkinleştirmeniz gerekir:

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

Yazma kuralları

Projenizdeki varsayılan veritabanı ve her ek veritabanı için oluşturduğunuz veri modeline göre uyarlanmış Cloud Firestore Security Rules yazıp yöneteceksiniz.

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

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

Cloud Firestore mobil/web istemci kitaplığından gelen her veritabanı isteği, herhangi bir veri okunmadan veya yazılmadan önce güvenlik kurallarınıza göre değerlendirilir. Kurallar, belirtilen belge yollarından herhangi birine erişimi reddederse isteğin tamamı başarısız olur.

Aşağıda, temel kural kümelerine dair bazı örnekler verilmiştir. Bu kurallar geçerli olsa da üretim uygulamaları için önerilmez:

Kimlik doğrulama 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;
    }
  }
}

Tümünü reddet

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

Tümüne 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, veritabanının tamamındaki tüm belgelerle eşleşir. Belirli veri yollarını eşleştirmeyi ve hiyerarşik verilerle çalışmayı öğrenmek için güvenlik kurallarını yapılandırma kılavuzuna geçin.

Kuralları test etme

Cloud Firestore, kural kümenizi test etmek için kullanabileceğiniz bir kural simülasyon aracı sunar. Simülatöre hem Google Cloud Console'dan hem de Firebase konsolundan erişebilirsiniz.

Kural simülasyon aracı; kimliği doğrulanmış ve 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 jetonları oluşturabilir ve önizleyebilirsiniz. Simüle edilen istekler, dağıtılan kural grubunuzda değil, düzenleyicinizdeki kural grubunda çalıştırılır.

Google Cloud Console'da kuralları test etme

Google Cloud Console'daki kural simülatörü, hem Standard hem de Enterprise sürümlerinde yerel modda Firestore için kullanılabilir.

Gerekli izinler

Google Cloud Console'da güvenlik kurallarını test etmek için aşağıdaki IAM iznine ihtiyacınız vardır:

  • firebaserules.rulesets.test

Google Cloud Console'da bir veritabanı isteğini simüle etmek için:

  1. Google Cloud Console'da Veritabanları sayfasına gidin.
  2. Test etmek istediğiniz veritabanının kimliğini tıklayın.
  3. Gezinme menüsünde Güvenlik'i tıklayın.
  4. Simülasyon Aracı sekmesini tıklayın.
  5. Simülasyon türü açılır listesinde bir işlem türü seçin: get, create, update veya delete.
  6. Konum alanına, test etmek istediğiniz doküman yolunu girin (örneğin, users/user_123).
  7. (İsteğe bağlı) create ve update istekleri için Build document'ı (Doküman oluştur) tıklayarak sahte doküman yükünü yapılandırın.
  8. (İsteğe bağlı) Kimliği doğrulanmış bir isteği simüle etmek için Kimlik doğrulama'yı etkinleştirin, bir kimlik doğrulama sağlayıcısı (ör. google.com veya Anonim) seçin ve jeton yükü alanlarını yapılandırın.
  9. Çalıştır'ı tıklayın.

Değerlendirme panelinde, isteğe izin verilip verilmediği, değerlendirilen her koşul için ayrıntılı rapor öğeleri ve kod düzenleyicide satır düzeyinde vurgulamalar gösterilir.

Firebase konsolunda kuralları test etme

Firebase konsolunda kuralları test etmek için Databases & Storage (Veritabanları ve Depolama) > Firestore > Rules (Kurallar) sekmesine gidin. Simülatör ayarlarını açmak için Kural Deneme Alanı'nı tıklayın, simülasyon seçeneklerinizi belirleyin ve ardından Çalıştır'ı tıklayın.

Kuralları dağıtma

Mobil uygulamanızdan Cloud Firestore kullanmaya başlamadan önce güvenlik kurallarını dağıtmanız gerekir. Kuralları Firebase konsolunda, Google Cloud konsolunda, Firebase CLI'yı kullanarak veya Cloud Firestore yönetim REST API'si ile dağıtabilirsiniz.

Cloud Firestore Security Rules üzerinde yapılan güncellemelerin yeni sorguları ve dinleyicileri etkilemesi bir dakika kadar sürebilir. Ancak değişikliklerin tamamen uygulanması ve etkin dinleyicileri etkilemesi 10 dakikayı bulabilir.

Firebase konsolunu kullanma

Projenizdeki varsayılan veritabanı için ilk kural grubunuzu oluşturup dağıtmak üzere Firebase konsolunda Veritabanları ve Depolama Alanı > Firestore > Kurallar sekmesine gidin.

Projeniz için birden fazla veritabanı oluşturursanız her veritabanı için Cloud Firestore Security Rules dağıtabilirsiniz. Firebase konsolunda, varsayılan veritabanı ile ek veritabanları arasında geçiş yapmak için veritabanı seçiciyi kullanın.

Kurallarınızı online düzenleyicide yazın, ardından Yayınla'yı tıklayın.

Google Cloud Console'u kullanma

Cloud Firestore Security Rules ürününü doğrudan Google Cloud Console'da yönetebilir ve dağıtabilirsiniz. Kural düzenleyici, hem Standart hem de Enterprise sürümlerinde yerel modda Firestore için kullanılabilir.

Gerekli izinler

Google Cloud Console'da güvenlik kurallarını yönetmek ve dağıtmak için aşağıdaki IAM izinlerine ihtiyacınız vardır:

  • firebaserules.releases.create
  • firebaserules.releases.delete
  • firebaserules.releases.update
  • firebaserules.rulesets.create
  • firebaserules.rulesets.delete
  • firebaserules.rulesets.list
  • firebaserules.rulesets.test (Kural simülasyon aracını kullanmak için gereklidir)

Google Cloud Console'da kural dağıtmak için:

  1. Google Cloud Console'da Veritabanları sayfasına gidin.
  2. Yönetmek istediğiniz veritabanının kimliğini tıklayın.
  3. Gezinme menüsünde Güvenlik'i tıklayın.
  4. Firestore Kuralları sekmesini tıklayın.
  5. Kural düzenleyicide kurallarınızı görüntüleyin. Düzenlemek için Yeni kural grubu veya Kural grubunu kopyala'yı tıklayın ve ardından kurallarınızı değiştirin.
  6. Değişikliklerinizi dağıtmak için Yayınla'yı tıklayın.

Zaman çizelgesinde önceki kural gruplarını da görüntüleyebilir ve bunları kopyalayabilir veya geri yükleyebilirsiniz.

Firebase CLI'yı kullanma

Kuralları Firebase CLI'yı kullanarak da dağıtabilirsiniz. KSA'yı kullanarak kurallarınızı uygulama kodunuzla birlikte sürüm denetimi altında tutabilir ve kuralları mevcut dağıtım sürecinizin bir parçası olarak dağıtabilirsiniz.

// 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 rules for all configured databases
firebase deploy --only firestore

Cloud Storage için güvenliği artırma

Uygulamalarınız, Cloud Firestore uygulamasının güçlü veritabanı özelliklerinden ve Cloud Storage uygulamasının dosya depolama ve yönetim özelliklerinden yararlanır. Bu ürünler birlikte kullanıldığında uygulama güvenliğini de artırır. Cloud Firestore, her iki ürün için de Firebase Güvenlik Kuralları tarafından kullanılabilecek yetkilendirme şartlarını yakalayabilir. Daha fazla bilgi için Cloud Storage kılavuzuna bakın.

Sonraki adımlar