Flutter'da Cloud Storage'ı kullanmaya başlama

Cloud Storage for Firebase, kullanıcı tarafından oluşturulan içerikleri (ör. resim ve video) yükleyip paylaşmanıza olanak tanır. Bu sayede uygulamalarınıza rich media içerikleri ekleyebilirsiniz. Verileriniz, yüksek kullanılabilirlik ve küresel yedekliliğe sahip, exabyte ölçeğinde bir nesne depolama çözümü olan Google Cloud Storage paketinde depolanır. Cloud Storage for Firebase, bu dosyaları doğrudan mobil cihazlardan ve web tarayıcılarından güvenli bir şekilde yüklemenize olanak tanır ve düzensiz ağları kolayca yönetir.

Başlamadan önce

  1. Henüz yapmadıysanız Flutter uygulamaları için başlangıç kılavuzunu tamamladığınızdan emin olun. Bunlardan bazıları:

    • Firebase projesi oluşturma

    • Flutter için Firebase SDK'larını yükleme ve başlatma

  2. Cloud Storage for Firebase kullanmak için Firebase projenizin kullandıkça öde Blaze fiyatlandırma planında olduğundan emin olun. Firebase ve Google Cloud kullanmaya yeni başladıysanız 300 ABD doları değerinde ücretsiz deneme kredisi almaya uygun olup olmadığınızı kontrol edin.

Varsayılan Cloud Storage paketi oluşturma

  1. Firebase konsolunda Veritabanları ve Depolama > Depolama'ya gidin.

    Projeniz henüz kullandıkça öde Blaze fiyatlandırma planında değilse projenizi yükseltmeniz istenir.

  2. Başlayın'ı tıklayın.

  3. Varsayılan paketiniz için bir konum seçin.

  4. Varsayılan paketiniz için Firebase Security Rules özelliğini yapılandırın. Geliştirme sırasında herkese açık erişim için kurallarınızı ayarlamayı düşünebilirsiniz.

  5. Bitti'yi tıklayın.

Artık paketi Firebase konsolunda görüntüleyebilirsiniz (Veritabanları ve Depolama > Depolama > Dosyalar sekmesine gidin). Varsayılan paket adı biçiminiz PROJECT_ID.firebasestorage.app.

Herkese açık erişimi ayarlama

Firebase için Cloud Storage, verilerinizin nasıl yapılandırılacağını, nasıl dizine ekleneceğini ve ne zaman okunup yazılabileceğini tanımlamanıza olanak tanıyan bildirim temelli bir kurallar dili sağlar. Varsayılan olarak, Cloud Storage'a okuma ve yazma erişimi kısıtlanır. Bu nedenle, yalnızca kimliği doğrulanmış kullanıcılar veri okuyabilir veya yazabilir. Firebase Authentication'ı ayarlamadan başlamak için kurallarınızı herkese açık erişim için yapılandırabilirsiniz.

Bu işlem, Cloud Storage'ı uygulamanızı kullanmayan kişiler de dahil olmak üzere herkesin erişimine açar. Bu nedenle, kimlik doğrulamayı ayarladığınızda Cloud Storage'ı tekrar kısıtladığınızdan emin olun.

Cloud Storage SDK'sını uygulamanıza ekleme

  1. Eklentiyi yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:

    flutter pub add firebase_storage
    
  2. İşlem tamamlandıktan sonra Flutter uygulamanızı yeniden oluşturun:

    flutter run
    
  3. Eklentiyi Dart kodunuza aktarın:

    import 'package:firebase_storage/firebase_storage.dart';
    

Cloud Storage'ı ayarlayın

  1. Flutter proje dizininizden flutterfire configure komutunu çalıştırın. Bu işlem, uygulamanızın kod tabanındaki Firebase yapılandırma dosyasını (firebase_options.dart), varsayılan Cloud Storage paketin adını içerecek şekilde günceller.

  2. FirebaseStorage örneği oluşturarak Cloud Storage paketinize erişin:

    final storage = FirebaseStorage.instance;
    
    // Alternatively, explicitly specify the bucket name URL.
    // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
    

Cloud Storage'ı kullanmaya başlayabilirsiniz.

Sonraki adım? Cloud Storage referansı oluşturmayı öğrenin.

Gelişmiş kurulum

Ek kurulum gerektiren birkaç kullanım alanı vardır:

Dünyanın dört bir yanından kullanıcılarınız varsa ve verilerini onlara yakın bir yerde depolamak istiyorsanız ilk kullanım alanı idealdir. Örneğin, gecikmeyi azaltmak için bu bölgelerdeki kullanıcıların verilerini depolamak üzere ABD, Avrupa ve Asya'da paketler oluşturabilirsiniz.

İkinci kullanım alanı, farklı erişim kalıplarına sahip verileriniz varsa yararlıdır. Örneğin: Resimleri veya sık erişilen diğer içerikleri depolayan çok bölgeli ya da bölgesel bir paket ve kullanıcı yedeklerini veya seyrek erişilen diğer içerikleri depolayan nearline ya da coldline paketi oluşturabilirsiniz.

Bu kullanım alanlarının her ikisinde de birden fazla Cloud Storage paketi kullanmak isteyeceksiniz.

Üçüncü kullanım alanı, kullanıcıların birden fazla oturum açmış hesaba (ör. kişisel hesap ve iş hesabı) sahip olmasına olanak tanıyan Google Drive gibi bir uygulama oluşturuyorsanız kullanışlıdır. Ek hesapların her birini kimlik doğrulamak için özel bir Firebase uygulaması örneği kullanabilirsiniz.

Birden fazla Cloud Storage paketi kullanma

Yukarıda belirtilen varsayılan Cloud Storage paketi dışında bir Cloud Storage paketi kullanmak veya tek bir uygulamada birden fazla Cloud Storage paketi kullanmak istiyorsanız özel paketinize referans veren bir FirebaseStorage örneği oluşturabilirsiniz:

// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");

İçe aktarılan paketlerle çalışma

Mevcut bir Cloud Storage paketini Firebase'e aktarırken Google Cloud SDK'da bulunan gsutil aracını kullanarak Firebase'e bu dosyalara erişme izni vermeniz gerekir:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGE-BUCKET

Proje numaranızı Firebase projelerine giriş bölümünde açıklandığı şekilde bulabilirsiniz.

Bu durum, varsayılan erişim denetimi Firebase'e izin verecek şekilde ayarlandığı için yeni oluşturulan paketleri etkilemez. Bu işlem geçici bir çözümdür ve gelecekte otomatik olarak gerçekleştirilecektir.

Özel bir Firebase uygulaması kullanma

Özel bir FirebaseApp kullanarak daha karmaşık bir uygulama oluşturuyorsanız bu uygulamayla başlatılan bir FirebaseStorage örneği oluşturabilirsiniz:

// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);

Sonraki adımlar