Cloud Storage for Firebase umożliwia przesyłanie i udostępnianie treści generowanych przez użytkowników, takich jak obrazy i filmy, co pozwala tworzyć w aplikacjach bogate treści multimedialne. Dane są przechowywane w zasobniku Google Cloud Storage, czyli rozwiązaniu do przechowywania obiektów o skali eksabajtów, które zapewnia wysoką dostępność i globalną redundancję. Cloud Storage dla Firebase umożliwia bezpieczne przesyłanie tych plików bezpośrednio z urządzeń mobilnych i przeglądarek internetowych, z łatwością radząc sobie z niestabilnymi sieciami.
Zanim zaczniesz
- Jeśli jeszcze tego nie zrobiono, zapoznaj się z przewodnikiem dla początkujących dotyczącym aplikacji na platformę Flutter. Obejmuje to m.in.: - Tworzenie projektu Firebase. 
- Instalowanie i inicjowanie pakietów SDK Firebase dla Fluttera. 
 
- Upewnij się, że Twój projekt Firebase korzysta z abonamentu Blaze z płatnością według zużycia zasobów. Jest to wymaganie, które zaczęło obowiązywać w październiku 2024 r. (zobacz nasze najczęstsze pytania). Jeśli nie masz doświadczenia z Firebase i Google Cloud, sprawdź, czy kwalifikujesz się do otrzymania środków w wysokości 300 USD. 
Tworzenie domyślnego zasobnika Cloud Storage
- W panelu nawigacyjnym Firebase konsoli wybierz Przechowywanie. - Jeśli Twój projekt nie korzysta jeszcze z abonamentu Blaze z płatnością według wykorzystania, pojawi się prośba o jego przeniesienie. 
- Kliknij Rozpocznij. 
- Wybierz lokalizację domyślnego zasobnika. - Koszyki w - US-CENTRAL1- US-EAST1- US-WEST1
- Jeśli chcesz, możesz później utworzyć kilka zasobników, z których każdy będzie mieć własną lokalizację. 
 
- Skonfiguruj Firebase Security Rules dla domyślnego zasobnika. Podczas tworzenia aplikacji rozważ skonfigurowanie reguł dostępu publicznego. 
- Kliknij Gotowe. 
Zasobnik możesz teraz wyświetlić na Cloud Storage karcie Pliki w konsoli Firebase. Domyślny format nazwy kosza to: PROJECT_ID.firebasestorage.app
Konfigurowanie dostępu publicznego
Cloud Storage for Firebase udostępnia deklaratywny język reguł, który umożliwia określenie struktury danych, sposobu ich indeksowania oraz tego, kiedy można je odczytywać i zapisywać. Domyślnie dostęp do odczytu i zapisu w Cloud Storage jest ograniczony, więc tylko uwierzytelnieni użytkownicy mogą odczytywać i zapisywać dane. Aby rozpocząć bez konfigurowania Uwierzytelniania Firebase, możesz skonfigurować reguły dostępu publicznego.
W ten sposób Cloud Storage będzie dostępny dla wszystkich, nawet dla osób, które nie korzystają z Twojej aplikacji. Pamiętaj, aby po skonfigurowaniu uwierzytelniania ponownie ograniczyć dostęp do Cloud Storage.
Dodawanie pakietu SDK Cloud Storage do aplikacji
- W katalogu głównym projektu Flutter uruchom to polecenie, aby zainstalować wtyczkę: - flutter pub add firebase_storage
- Po zakończeniu ponownie skompiluj aplikację Flutter: - flutter run
- Zaimportuj wtyczkę w kodzie Dart: - import 'package:firebase_storage/firebase_storage.dart';
Konfigurowanie Cloud Storage
- Uruchom .- flutterfire configurew katalogu projektu Flutter. Spowoduje to zaktualizowanie pliku konfiguracyjnego Firebase (- firebase_options.dart) w bazie kodu aplikacji, tak aby zawierał nazwę domyślnego zasobnika Cloud Storage.
- Uzyskaj dostęp do zasobnika Cloud Storage, tworząc instancję - FirebaseStorage:- final storage = FirebaseStorage.instance; // Alternatively, explicitly specify the bucket name URL. // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
Możesz już zacząć korzystać z Cloud Storage.
Co dalej? Dowiedz się, jak utworzyć odwołanie do Cloud Storage.
Konfiguracja zaawansowana
Istnieje kilka przypadków użycia, które wymagają dodatkowej konfiguracji:
- Korzystanie z zasobników Cloud Storage w wielu regionach geograficznych
- Korzystanie z zasobników Cloud Storage w różnych klasach pamięci masowej
- Używanie zasobników Cloud Storage z wieloma uwierzytelnionymi użytkownikami w tej samej aplikacji
Pierwszy przypadek użycia jest idealny, jeśli masz użytkowników na całym świecie i chcesz przechowywać ich dane w pobliżu ich lokalizacji. Możesz na przykład utworzyć zasobniki w Stanach Zjednoczonych, Europie i Azji, aby przechowywać dane użytkowników z tych regionów i zmniejszyć opóźnienia.
Drugi przypadek użycia jest przydatny, jeśli masz dane o różnych wzorcach dostępu. Możesz na przykład skonfigurować zasobnik wieloregionowy lub regionalny, w którym będą przechowywane zdjęcia lub inne często używane treści, oraz zasobnik nearline lub coldline, w którym będą przechowywane kopie zapasowe użytkowników lub inne rzadko używane treści.
W obu tych przypadkach użycia warto korzystać z wielu zasobników Cloud Storage.
Trzeci przypadek użycia jest przydatny, jeśli tworzysz aplikację, taką jak Dysk Google, która umożliwia użytkownikom korzystanie z wielu zalogowanych kont (np. konta osobistego i służbowego). Do uwierzytelniania każdego dodatkowego konta możesz używać niestandardowej instancji aplikacji Firebase.
Korzystanie z wielu zasobników Cloud Storage
Jeśli chcesz użyć innego zasobnika Cloud Storage niż domyślny podany powyżej lub użyć wielu zasobników Cloud Storage w jednej aplikacji, możesz utworzyć instancję FirebaseStorage, która odwołuje się do Twojego niestandardowego zasobnika:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");
Praca z zaimportowanymi zasobnikami
Podczas importowania do Firebase istniejącego zasobnika Cloud Storage musisz przyznać Firebase uprawnienia dostępu do tych plików za pomocą narzędzia gsutil, które jest częścią pakietu Google Cloud SDK:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGE-BUCKET
Numer projektu znajdziesz w wprowadzeniu do projektów Firebase.
Nie ma to wpływu na nowo utworzone zasobniki, ponieważ mają one domyślne ustawienie kontroli dostępu, które zezwala na dostęp Firebase. Jest to środek tymczasowy, który w przyszłości będzie stosowany automatycznie.
Używanie niestandardowej aplikacji Firebase
Jeśli tworzysz bardziej skomplikowaną aplikację za pomocą niestandardowego FirebaseApp, możesz utworzyć instancję FirebaseStorage zainicjowaną za pomocą tej aplikacji:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
Dalsze kroki
- Przygotuj się do uruchomienia aplikacji:- Włącz Sprawdzanie aplikacji, aby mieć pewność, że tylko Twoje aplikacje mają dostęp do zasobników na dane.
- Skonfiguruj alerty budżetowe w konsoli Google Cloud.
- Monitoruj panel Wykorzystanie i rozliczenia w konsoli Firebase, aby uzyskać ogólny obraz wykorzystania usług Firebase w projekcie. Możesz też otworzyć panel Użycie Cloud Storage, aby uzyskać bardziej szczegółowe informacje o wykorzystaniu.
- Zapoznaj się z listą kontrolną dotyczącą uruchamiania Firebase.