Cloud Firestore Security Rules ile altyapıyı yönetmek veya sunucu tarafında kimlik doğrulama ve yetkilendirme kodu yazmak zorunda kalmadan mükemmel bir kullanıcı deneyimi oluşturmaya odaklanabilirsiniz.
Güvenlik kuralları, basit ancak etkili 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 role dayalı erişim sistemleri oluşturmak için Cloud Firestore Security Rules ile birlikte Firebase Authentication'ı kullanmanız gerekir.
Yapay zeka desteği için yapay zeka istemi
Yapay zeka desteği için aşağıdaki istemi yapay zeka kodlama aracınıza (Android Studio'daki Gemini, Antigravity, Claude Code, Codex ve Cursor gibi) kopyalayın. İstemi özelleştirebilir ve temsilcinizle birlikte yineleme yapabilirsiniz. Ayrıntılı yükleme 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
Cloud Firestore güvenlik kurallarının 2. sürümü Mayıs 2019 itibarıyla kullanıma sunuldu. Kuralların 2. sürümü, özyinelemeli joker karakterlerin davranışını değiştirir {name=**}. Koleksiyon grubu sorgularını kullanmayı planlıyorsanız 2. sürümü kullanmanız gerekir. Güvenlik kurallarınızda ilk satırı rules_version = '2'; yaparak 2. sürümü etkinleştirmeniz gerekir:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
Yazım kuralları
Varsayılan veritabanı ve projenizdeki her ek veritabanı için oluşturduğunuz veri modeline göre uyarlanmış Cloud Firestore Security Rules yazıp bunları yönetirsiniz.
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 FirestoreMobil/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 engellerse isteğin tamamı başarısız olur.
Temel kural kümelerine ilişkin bazı örnekleri aşağıda bulabilirsiniz. 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ştirme ve hiyerarşik verilerle çalışma hakkında bilgi edinmek için güvenlik kurallarını yapılandırma kılavuzuna geçin.
Kuralları test etme
Cloud Firestore, kural setinizi test etmek için kullanabileceğiniz bir kural simülasyon aracı sağlar. Simülatöre hem Google Cloud Console'dan hem de Firebase Console'dan erişebilirsiniz.
Kurallar 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şturup önizleyebilirsiniz. Simüle edilmiş istekler, dağıtılan kural kümenize değil, düzenleyicinizdeki kural kümesine göre çalıştırılır.
Google Cloud Console'da kuralları test etme
Google Cloud Console'daki kural simülasyonu, hem Standard hem de Enterprise sürümlerinde Native 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 veritabanı isteğini simüle etmek için:
- Google Cloud Console'da Veritabanları sayfasına gidin.
- Test etmek istediğiniz veritabanının kimliğini tıklayın.
- Gezinme menüsünde Güvenlik'i tıklayın.
- Simülasyon aracı sekmesini tıklayın.
- Simülasyon türü açılır listesinde bir işlem türü seçin: get, create, update veya delete.
- Konum alanına, test etmek istediğiniz belge yolunu girin (örneğin,
users/user_123). - (İsteğe bağlı) Oluşturma ve güncelleme istekleri için sahte doküman yükünü yapılandırmak üzere Doküman oluştur'u tıklayın.
- (İ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ı (ör. google.com veya Anonymous) seçin ve jeton yükü alanlarını yapılandırın.
- Çalıştır'ı tıklayın.
Değerlendirme panelinde isteğin izin verilip verilmediği, değerlendirilen her koşulla ilgili ayrıntılı rapor öğeleri ve kod düzenleyicide satır düzeyinde vurgular gösterilir.
Firebase konsolunda kuralları test etme
Firebase konsolunda kuralları test etmek için Veritabanları ve Depolama > Firestore > Kurallar sekmesine gidin. Simülatör ayarlarını açmak için Kurallar 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 Console'da, Firebase CLI'yi kullanarak veya Cloud Firestore yönetim REST API'si ile dağıtabilirsiniz.
Cloud Firestore Security Rules güncellemelerinin yeni sorguları ve dinleyicileri etkilemesi bir dakika kadar sürebilir. Ancak değişikliklerin tam olarak yayılması ve etkin dinleyicileri etkilemesi 10 dakikayı bulabilir.
Firebase konsolunu kullanma
İlk kural grubunuzu ayarlamak ve dağıtmak için projenizdeki varsayılan veritabanında Firebase konsolundaki Veritabanları ve Depolama > 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üzenleyiciye yazın ve Yayınla'yı tıklayın.
Google Cloud Console'u kullanma
Cloud Firestore Security Rules'yı doğrudan Google Cloud Console'da yönetip dağıtabilirsiniz. Kural düzenleyici, hem Standard hem de Enterprise sürümlerinde Native 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.createfirebaserules.releases.deletefirebaserules.releases.updatefirebaserules.rulesets.createfirebaserules.rulesets.deletefirebaserules.rulesets.listfirebaserules.rulesets.test(Kural simülasyon aracını kullanmak için gereklidir)
Google Cloud Console'da kuralları dağıtmak için:
- Google Cloud Console'da Veritabanları sayfasına gidin.
- Yönetmek istediğiniz veritabanının kimliğini tıklayın.
- Gezinme menüsünde Güvenlik'i tıklayın.
- Firestore Kuralları sekmesini tıklayın.
- Kurallar düzenleyicisinde kurallarınızı görüntüleyin. Düzenlemek için Yeni kural grubu'nu veya Kural grubunu klonla'yı tıklayın ve kurallarınızı değiştirin.
- Değişikliklerinizi dağıtmak için Yayınla'yı tıklayın.
Ayrıca, önceki kural kümelerini zaman çizelgesinde görüntüleyebilir, klonlayabilir veya geri yükleyebilirsiniz.
Firebase CLI'yı kullanma
Kuralları Firebase CLI 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'nın güçlü veritabanı özelliklerinden ve Cloud Storage'nin dosya depolama ve yönetim özelliklerinden yararlanır. Bu ürünler birlikte kullanıldığında, Cloud Firestore her iki ürün için de Firebase güvenlik kuralları tarafından kullanılabilen yetkilendirme şartlarını yakalayabildiğinden uygulama güvenliğini de güçlendirir. Daha fazla bilgi için Cloud Storage kılavuzuna bakın.
Sonraki adımlar
- Güvenlik kurallarını nasıl yapılandıracağınızı öğrenin.
- Özel güvenlik kuralları koşulları yazın.
- Güvenlik kuralları referansını okuyun.