Cloud Storage dla Firebase umożliwia przesyłanie i udostępnianie treści użytkowników, np. obrazów i filmów, co pozwala umieszczać w aplikacjach treści multimedialne. Twoje dane są przechowywane w zasobniku Google Cloud Storage – rozwiązaniu obiektowej pamięci masowej w skali eksabajtowej o wysokiej dostępności i globalnej nadmiarowości. Cloud Storage dla Firebase umożliwia bezpieczne przesyłanie tych plików bezpośrednio z urządzeń mobilnych i przeglądarek, co pozwala łatwo obsługiwać niestabilne sieci.
Wymagania wstępne
Dodaj Firebase do swojego projektu Android, chyba że masz to już za sobą.
Tworzenie domyślnego zasobnika Cloud Storage
W panelu nawigacji konsoli Firebase kliknij Miejsce na dane, a potem kliknij Rozpocznij.
Przeczytaj komunikaty na temat zabezpieczania danych w Cloud Storage za pomocą reguł zabezpieczeń. W trakcie programowania rozważ skonfigurowanie reguł dostępu publicznego.
Wybierz lokalizację domyślnego zasobnika Cloud Storage.
To ustawienie lokalizacji określa domyślną lokalizację zasobów Google Cloud Platform (GCP) dla Twojego projektu. Pamiętaj, że ta lokalizacja będzie używana w przypadku usług GCP w projekcie, które wymagają ustawienia lokalizacji, a zwłaszcza bazy danych Cloud Firestore i aplikacji App Engine (co jest wymagane, jeśli używasz usługi Cloud Scheduler).
Jeśli nie możesz wybrać lokalizacji, oznacza to, że Twój projekt ma już domyślną lokalizację zasobów GCP. Wartość została ustawiona podczas tworzenia projektu lub podczas konfigurowania innej usługi, która wymaga ustawienia lokalizacji.
Jeśli korzystasz z abonamentu Blaze, możesz utworzyć wiele zasobników, z których każdy będzie miał własną lokalizację.
Kliknij Gotowe.
Konfigurowanie dostępu publicznego
Cloud Storage dla Firebase udostępnia język reguł deklaratywnych, który pozwala zdefiniować, jak dane powinny być uporządkowane, jak powinny być indeksowane oraz kiedy dane mogą być odczytywane i zapisywane. Domyślnie uprawnienia do odczytu i zapisu w Cloud Storage są ograniczone, więc tylko uwierzytelnieni użytkownicy mogą odczytywać i zapisywać dane. Aby rozpocząć bez konfigurowania uwierzytelniania, możesz skonfigurować reguły dostępu publicznego.
Dzięki temu usługa Cloud Storage jest dostępna dla wszystkich, nawet dla osób, które nie korzystają z Twojej aplikacji. Pamiętaj więc, aby ponownie ograniczyć Cloud Storage podczas konfigurowania uwierzytelniania.
Dodawanie pakietu SDK Cloud Storage do aplikacji
W pliku Gradle (na poziomie modułu) modułu (na poziomie aplikacji) (zwykle<project>/<app-module>/build.gradle.kts
lub <project>/<app-module>/build.gradle
) dodaj zależność z biblioteką Cloud Storage na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie funkcji Firebase Android BoM.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.2")) // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage") }
Dzięki użyciu BoM Firebase Android BoM Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Dodawanie zależności bibliotek Firebase bez korzystania z BM
Jeśli nie chcesz używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli w swojej aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu będziesz mieć pewność, że wszystkie wersje są zgodne.
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage:21.0.0") }
Konfigurowanie Cloud Storage
Pierwszym krokiem do uzyskania dostępu do zasobnika Cloud Storage jest utworzenie instancji FirebaseStorage
:
Kotlin+KTX
storage = Firebase.storage
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
Możesz już zacząć korzystać z Cloud Storage.
Najpierw dowiedz się, jak utworzyć plik referencyjny do Cloud Storage.
Konfiguracja zaawansowana
W kilku przypadkach dodatkowa konfiguracja może być wymagana:
- Korzystanie z zasobników Cloud Storage w wielu regionach geograficznych
- Używanie 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 ich pobliżu. Możesz na przykład utworzyć zasobniki w Stanach Zjednoczonych, Europie i Azji do przechowywania danych użytkowników w tych regionach, aby skrócić czas oczekiwania.
Drugi przypadek użycia jest przydatny, gdy masz dane o różnych wzorcach dostępu. Możesz na przykład skonfigurować wieloregionalny lub regionalny zasobnik do przechowywania zdjęć lub innych często używanych treści, a także zasobnik Nearline lub Coldline, w którym będą przechowywane kopie zapasowe danych użytkowników lub inne rzadko używane treści.
W każdym z tych przypadków warto używać wielu zasobników Cloud Storage.
Trzeci przypadek użycia jest przydatny, gdy tworzysz aplikację, np. Dysk Google, która pozwala użytkownikom mieć więcej niż jedno konto (na przykład konto osobiste i służbowe). Do uwierzytelniania każdego dodatkowego konta możesz użyć niestandardowej instancji aplikacji Firebase.
Korzystanie z wielu zasobników Cloud Storage
Jeśli chcesz użyć innego zasobnika Cloud Storage niż podany powyżej lub użyć wielu zasobników Cloud Storage w jednej aplikacji, możesz utworzyć instancję FirebaseStorage
odwołującą się do zasobnika niestandardowego:
Kotlin+KTX
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");
Praca z zaimportowanymi zasobnikami
Podczas importowania do Firebase istniejącego zasobnika Cloud Storage musisz zezwolić Firebase na dostęp do tych plików za pomocą narzędzia gsutil
, które wchodzi w skład pakietu SDK Google Cloud:
gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>
Numer projektu znajdziesz we wprowadzeniu do projektów Firebase.
Nie ma to wpływu na nowo utworzone zasobniki, ponieważ ich domyślna kontrola dostępu zezwala na dostęp Firebase. Jest to środek tymczasowy i w przyszłości będzie realizowany automatycznie.
Użyj niestandardowej aplikacji Firebase
Jeśli tworzysz bardziej złożoną aplikację za pomocą niestandardowego obiektu FirebaseApp
, możesz utworzyć instancję FirebaseStorage
zainicjowaną z tą aplikacją:
Kotlin+KTX
// Get the default bucket from a custom FirebaseApp val storage = Firebase.storage(customApp!!) // Get a non-default bucket from a custom FirebaseApp val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")
Java
// Get the default bucket from a custom FirebaseApp FirebaseStorage storage = FirebaseStorage.getInstance(customApp); // Get a non-default bucket from a custom FirebaseApp FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");
Dalsze kroki
Przygotowanie do wprowadzenia aplikacji:
Włącz Sprawdzanie aplikacji, aby mieć pewność, że tylko Twoje aplikacje mają dostęp do zasobników na dane.
W konsoli Google Cloud skonfiguruj alerty dotyczące budżetu dla swojego projektu.
Monitoruj wykorzystanie i płatności panel w konsoli Firebase, aby mieć ogólny obraz wykorzystania projektu w wielu usługach Firebase. Bardziej szczegółowe informacje o wykorzystaniu możesz też znaleźć w panelu Wykorzystanie Cloud Storage.
Zapoznaj się z listą kontrolną uruchamiania Firebase.