Uygulamanızı Cloud Storage öykünücüsüne bağlamadan önce , genel Firebase Local Emulator Suite iş akışını anladığınızdan ve Local Emulator Suite'i kurup yapılandırdığınızdan ve CLI komutlarını gözden geçirdiğinizden emin olun.
Bir Firebase projesi seçin
Firebase Local Emulator Suite, ürünleri tek bir Firebase projesi için öykünür.
Kullanılacak projeyi seçmek için, öykünücüleri başlatmadan önce, CLI'de çalışma dizininizde
firebase use . Veya
--project bayrağını her bir öykünücü komutuna iletebilirsiniz.
Local Emulator Suite, gerçek Firebase projelerinin ve demo projelerinin öykünmesini destekler.
|Proje tipi||Özellikler||Emülatörlerle kullanın|
|Gerçek|
Gerçek bir Firebase projesi, sizin oluşturduğunuz ve yapılandırdığınız projedir (büyük olasılıkla Firebase konsolu aracılığıyla).
Gerçek projeler, veritabanı örnekleri, depolama paketleri, işlevler veya o Firebase projesi için kurduğunuz diğer kaynaklar gibi canlı kaynaklara sahiptir.
Gerçek Firebase projeleriyle çalışırken, desteklenen ürünlerin herhangi biri veya tümü için öykünücüler çalıştırabilirsiniz.
Taklit etmediğiniz tüm ürünler için uygulamalarınız ve kodunuz canlı kaynakla (veritabanı örneği, depolama grubu, işlev vb.) etkileşime girer.
|Demo|
Bir demo Firebase projesinin gerçek bir Firebase yapılandırması ve canlı kaynağı yoktur. Bu projelere genellikle kod laboratuvarları veya diğer öğreticiler aracılığıyla erişilir.
Demo projeleri için proje kimlikleri demo ön
|Demo Firebase projeleriyle çalışırken, uygulamalarınız ve kodunuz yalnızca öykünücülerle etkileşime girer. Uygulamanız, bir öykünücünün çalışmadığı bir kaynakla etkileşim kurmaya çalışırsa, bu kod başarısız olur.|
Mümkün olan her yerde demo projeleri kullanmanızı öneririz. Avantajlar şunları içerir:
- Bir Firebase projesi oluşturmadan öykünücüleri çalıştırabileceğiniz için daha kolay kurulum
- Daha güçlü güvenlik, çünkü kodunuz yanlışlıkla taklit edilmeyen (üretim) kaynakları çalıştırırsa, veri değişikliği, kullanım ve faturalandırma şansı yoktur.
- SDK yapılandırmanızı indirmek için internete erişmeniz gerekmediğinden daha iyi çevrimdışı destek.
Uygulamanızı, öykünücülerle konuşmak için kullanın
Android, Apple platformları ve Web SDK'ları
Cloud Storage öykünücüsü ile etkileşim kurmak için uygulama içi yapılandırmanızı veya test sınıflarınızı aşağıdaki gibi ayarlayın.
Android
FirebaseStorage.getInstance().useEmulator("10.0.2.2", 9199);
Süratli
Storage.storage().useEmulator(withHost:"localhost", port:9199)
Web v8
var storage = firebase.storage(); storage.useEmulator("localhost", 9199);
Web v9
import { getStorage, connectStorageEmulator } from "firebase/storage"; const storage = getStorage(); connectStorageEmulator(storage, "localhost", 9199);
Öykünücüyü kullanarak Bulut Depolama olayları tarafından tetiklenen Bulut işlevlerini test etmek için ek kurulum gerekmez. Bulut Depolama ve Bulut İşlevleri öykünücülerinin ikisi de çalışırken otomatik olarak birlikte çalışırlar.
Yönetici SDK'ları
FIREBASE_STORAGE_EMULATOR_HOST ortam değişkeni ayarlandığında, Firebase Admin SDK'ları otomatik olarak Cloud Storage öykünücüsüne bağlanır:
export FIREBASE_STORAGE_EMULATOR_HOST="localhost:9199"
Cloud Functions öykünücüsünün Cloud Storage öykünücüsünden otomatik olarak haberdar olduğunu unutmayın; bu nedenle, Bulut İşlevleri ile Bulut Depolama öykünücüleri arasındaki entegrasyonları test ederken bu adımı atlayabilirsiniz. Ortam değişkeni, Bulut Depolama'daki Yönetici SDK'sı için otomatik olarak ayarlanacaktır.
Yönetici SDK kodunuzun başka bir ortamda çalışan paylaşılan bir öykünücüye bağlanmasını istiyorsanız , Firebase CLI kullanarak ayarladığınız proje kimliğinin aynısını belirtmeniz gerekir. App'i doğrudan
initializeApp için bir proje kimliği iletebilir veya
GCLOUD_PROJECT ortam değişkenini ayarlayabilirsiniz.
Node.js Yönetici SDK'sı
admin.initializeApp({ projectId: "your-project-id" });
Çevre değişkeni
export GCLOUD_PROJECT="your-project-id"
Verileri içe ve dışa aktarma
Veritabanı ve Cloud Storage öykünücüleri, çalışan bir öykünücü örneğinden verileri dışa aktarmanıza olanak tanır. Birim testlerinizde veya sürekli entegrasyon iş akışlarınızda kullanmak için temel bir veri seti tanımlayın ve ardından ekip arasında paylaşılmak üzere dışa aktarın.
firebase emulators:export ./dir
Testlerde, öykünücünün başlangıcında temel verileri içe aktarın.
firebase emulators:start --import=./dir
Bir dışa aktarma yolu belirterek veya yalnızca
--import bayrağına iletilen yolu kullanarak, öykünücüye kapatma sırasında verileri dışa aktarma talimatı verebilirsiniz.
firebase emulators:start --import=./dir --export-on-exit
Bu veri içe ve dışa aktarma seçenekleri,
firebase emulators:exec komutuyla da çalışır. Daha fazlası için emülatör komutu referansına bakın.
Cloud Storage öykünücüsü üretimden nasıl farklıdır?
İstemci uygulamalarının test edilmesi için Cloud Storage öykünücüsü, Firebase API yüzey alanı açısından üretime neredeyse mükemmel uyum sağlar. Tüm Firebase komutlarının normal Firebase SDK'ları (Web, Android ve Apple platformları) arasında çalışması beklenir.
Sunucu tarafı uygulamaların test edilmesi için sınırlamalar mevcuttur. Firebase Admin SDK'ları, Google Cloud API yüzeyini kullanır ve bu API'nin tüm uç noktaları öykünmez. Genel bir kural olarak, istemci SDK'larından yapılabilecek her şey (dosyaları yükleme veya silme, meta verileri alma ve ayarlama) Yönetici SDK'larından kullanım için de uygulanır, ancak bunun ötesinde herhangi bir şey uygulanmaz. Önemli istisnalar aşağıda listelenmiştir.
Bulut IAM'si
Firebase Emulator Suite, çalıştırmak için IAM ile ilgili herhangi bir davranışı çoğaltmaya veya bunlara uymaya çalışmaz. Öykünücüler sağlanan Firebase Güvenlik Kurallarına bağlıdır, ancak örneğin Bulut İşlevleri'ni çağıran hizmet hesabını ve dolayısıyla izinleri ayarlamak için IAM'nin normal olarak kullanılacağı durumlarda öykünücü yapılandırılabilir değildir ve geliştirici makinenizde küresel olarak kullanılabilen hesabı kullanır, doğrudan yerel bir komut dosyasını çalıştırmaya benzer.
Pub/Sub bildirimleri
Cloud Storage öykünücüsü, Cloud Pub/Sub öykünücüsü ile entegre değildir ve bu nedenle depolama nesnesi değişiklikleri için kanalların/bildirimlerin oluşturulmasını desteklemez. Cloud Functions Storage tetikleyicilerini doğrudan kullanmanızı öneririz.
Paket düzeyinde meta veriler
Cloud Storage öykünücüsü, depolama sınıfı, paket düzeyinde CORS yapılandırması, etiketler veya saklama ilkeleri dahil olmak üzere herhangi bir paket düzeyinde yapılandırmayı desteklemez. Firebase, bu desteği zaman içinde iyileştirmeyi amaçlamaktadır.
Sıradaki ne?
- Bir dizi video ve ayrıntılı nasıl yapılır örnekleri için Firebase Emulators Eğitim Oynatma Listesini izleyin.
- Tetiklenen işlevler, Bulut Depolama ile tipik bir entegrasyon olduğundan, işlevleri yerel olarak çalıştır bölümünde Firebase için Bulut İşlevleri öykünücüsü hakkında daha fazla bilgi edinin.