Uygulamanızı Cloud Storage for Firebase emülatörüne bağlamadan önce Firebase Local Emulator Suite için genel iş akışını kavradığınızı ve Ayrıca kurun ve yapılandırdığınız Local Emulator Suite ifadesini tıklayın ve CLI komutlarını inceleyin.
Firebase projesi seçin
Firebase Local Emulator Suite, tek bir Firebase projesi için ürün emülasyonu yapar.
Kullanılacak projeyi seçmek için emülatörleri başlatmadan önce CLI çalıştırmasında
Çalışma dizininizde firebase use
. Ya da
her emülatöre --project
işaretini
komutuna dokunun.
Local Emulator Suite, gerçek Firebase projelerinin ve demo projeleri.
Proje türü | Özellikler | Emülatörlerle kullanım |
---|---|---|
Gerçek |
Gerçek bir Firebase projesi, sizin oluşturduğunuz ve yapılandırdığınız (büyük olasılıkla Firebase konsolu üzerinden). Gerçek projelerde veritabanı örnekleri ve depolama alanı gibi canlı kaynaklar bulunur Firebase için oluşturduğunuz paketler, işlevler veya diğer kaynaklar belirler. |
Gerçek Firebase projeleriyle çalışırken tüm işlemler için emülatörler çalıştırabilirsiniz. veya desteklenen tüm ürünler. emüle etmediğiniz tüm ürünlerde uygulamalarınız ve kodunuz live kaynakla (veri tabanı örneği, depolama alanı) grup, işlev vb.) belirtin. |
Demo |
Demo Firebase projesinin gerçek bir Firebase yapılandırması yoktur ve canlı kaynak yok. Bu projelere genellikle codelab'ler veya eğiticidir. Demo projeleri için proje kimlikleri |
Demo Firebase projeleriyle çalışırken uygulamalarınız ve kodunuz yalnızca emülatörler aracılığıyla gerçekleştirilir. Uygulamanız bir kaynakla etkileşim kurmaya çalışırsa çalışmadığı durumlarda bu kod başarısız olur. |
Mümkün olan her yerde demo projeleri kullanmanızı öneririz. Sunulan avantajlar arasında şunlar sayılabilir:
- Emülatörleri, herhangi bir kod oluşturmadan da çalıştırabildiğiniz için kurulumu daha kolay Firebase projesi
- Kodunuz yanlışlıkla emülasyonsuz bir kod çağırırsa daha yüksek güvenlik sağlar (üretim) kaynaklarında, veri değişikliği, kullanım ve faturalandırma ihtimali yoktur.
- Gerektiğinde internet bağlantısı olmadığında çevrimdışı destek SDK yapılandırmanızı indirin.
Emülatörlerle konuşmak için uygulamanızı kullanın
Android, Apple platformları ve Web SDK'ları
API'lerle etkileşimde bulunmak için uygulama içi yapılandırmanızı Cloud Storage for Firebase emülatörü aşağıdaki gibidir.
Kotlin+KTX
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. val storage = Firebase.storage storage.useEmulator("10.0.2.2", 9199)
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseStorage storage = FirebaseStorage.getInstance(); storage.useEmulator("10.0.2.2", 9199);
Swift
Storage.storage().useEmulator(withHost: "127.0.0.1", port: 9199)
Web
const { getStorage, connectStorageEmulator } = require("firebase/storage"); const storage = getStorage(); if (location.hostname === "localhost") { // Point to the Storage emulator running on localhost. connectStorageEmulator(storage, "127.0.0.1", 9199); }
Web
var storage = firebase.storage(); if (location.hostname === "localhost") { // Point to the Storage emulator running on localhost. storage.useEmulator("127.0.0.1", 9199); }
Cloud Storage for Firebase etkinlikleri tarafından tetiklenen Cloud işlevlerini test etmek için ek kuruluma gerek yoktur. emülatörü kullanabilirsiniz. Cloud Storage for Firebase ve Cloud Functions emülatörleri de çalışıyor; bu öğeler otomatik olarak birlikte çalışıyor.
Admin SDK
Firebase Admin SDK cihazları otomatik olarak Cloud Storage for Firebase ağına bağlanır
FIREBASE_STORAGE_EMULATOR_HOST
ortam değişkeni ayarlandığında emülatörü:
export FIREBASE_STORAGE_EMULATOR_HOST="127.0.0.1:9199"
Cloud Functions emülatörünün, Test sırasında bu adımı atlayabilirsiniz için Cloud Storage for Firebase emülatörü Cloud Functions ile Cloud Storage for Firebase arasındaki entegrasyonlar emülatörleri kullanın. Ortam değişkeni, Yönetici SDK'sı için otomatik olarak ayarlanır. Cloud Storage for Firebase içinde.
Admin SDK kodunuzun şurada çalışan paylaşılan bir emülatöre bağlanmasını istiyorsanız:
başka bir ortamda kullanmak istiyorsanız Firebase CLI'yı kullanarak ayarladığınız proje kimliğini belirtmeniz gerekir.
Bir proje kimliğini doğrudan initializeApp
adlı iş ortağına iletebilir veya
GCLOUD_PROJECT
ortam değişkeni.
Node.js Yönetici SDK'sı
admin.initializeApp({ projectId: "your-project-id" });
Ortam Değişkeni
export GCLOUD_PROJECT="your-project-id"
Verileri içe ve dışa aktarma
Veritabanı ve Cloud Storage for Firebase emülatörleri, verileri dışa aktarmanıza olanak tanır. örneğine döneceğim. Projenizde kullanılacak temel bir veri kümesi tanımlayın ve sürekli entegrasyon iş akışlarını analiz etmek ve paylaşmak üzere yüksek tutulması bakımından çok değerli.
firebase emulators:export ./dir
Testlerde, emülatör başlatılırken referans verileri içe aktarın.
firebase emulators:start --import=./dir
Emülatöre, kapanma sırasında verileri dışa aktarma talimatı vermek için
dışa aktarma yolunu kullanabilir veya --import
öğesine geçirilen yolu kullanabilirsiniz.
tıklayın.
firebase emulators:start --import=./dir --export-on-exit
Bu veri içe ve dışa aktarma seçenekleri
firebase emulators:exec
komutunu da kullanabilirsiniz. Daha fazla bilgi için
emülatör komut referansı.
Cloud Storage for Firebase emülatörünün üretimden farkı nedir?
İstemci uygulamalarını test etmek için Cloud Storage for Firebase emülatörü, Firebase API yüzey alanı bakımından neredeyse mükemmel. Tümü Firebase komutlarının normal Firebase SDK'ları (Web, Android ve Apple platformlarında).
Sunucu tarafı uygulamaların test edilmesiyle ilgili sınırlamalar mevcuttur. Firebase Admin SDK'ları Google Cloud API yüzeyini kullanın ve bu API'nin tüm uç noktaları emüle edilir. Genel bir kural olarak, istemci SDK'larından yapılabilecek her şey (dosya yükleme veya silme, meta verileri alma ve ayarlama) da uygulanır SDK'larının kullanımına yönelik değildir, ancak bunun dışındaki hiçbir şey kullanılamaz. Hariç tutulan önemli noktalar aşağıda listelenmiştir.
Google Cloud Storage ile arasındaki farklar
Storage emülatörü de dahil olmak üzere Cloud Storage for Firebase ürünü, depolama nesnelerine odaklanan Google Cloud Storage (GCS) işlevlerinin bir alt kümesi Firebase uygulamaları geliştirmek için çok kullanışlıdır. Cloud Storage for Firebase. GCS'den şu açılardan ayrılır:
- Cloud Storage for Firebase şu anda aşağıdakiler için
Bucket
API'lerini desteklememektedir: depolama alanı gruplarını oluşturma, listeleme, alma veya silme. - Google Cloud Storage Objects API'den
şu yöntemler desteklenir:
copy
,delete
,get
,insert
,list
,patch
,rewrite
,update
.
Cloud IAM
Firebase Emulator Suite, verileri kopyalamaya veya ona Çalışma için IAM ile ilgili davranış. Emülatörler Firebase Güvenliği'ne bağlıdır Kurallar sağlanır ancak IAM'nin normalde kullanılacağı durumlarda (ör. Cloud Functions'ın hizmet hesabını ve dolayısıyla izinleri çağırmasını sağlar. emülatörü yapılandırılamaz ve şurada genel olarak mevcut hesabı kullanır: yerel bir komut dosyası çalıştırmaya benzer.
Pub/Sub bildirimleri
Cloud Storage for Firebase emülatörü Cloud ile entegre olmaz Pub/Sub emülatörü ve dolayısıyla depolama nesnesi değişiklikleri için kanallar/bildirimler. Önerilerimiz Cloud Functions doğrudan depolama alanını tetikler.
Paket düzeyinde meta veri
Cloud Storage for Firebase emülatörü hiçbir paket düzeyini desteklemiyor depolama sınıfı, paket düzeyinde CORS yapılandırması, etiketler ve veya saklama politikaları. Firebase bu desteği zaman içinde iyileştirmeyi hedeflemektedir.
Sonrasında ne olacak?
- Özenle seçilmiş bir video seti ve ayrıntılı "Nasıl yapılır?" örnekleri için Firebase Emulators Eğitimi Oynatma Listesi'ni takip edin.
- Tetiklenen işlevler Cloud Storage for Firebase ile tipik bir entegrasyon olduğundan Cloud Functions for Firebase emülatörü hakkında daha fazla bilgi için: İşlevleri yerel olarak çalıştırın.