Pierwsze kroki z Cloud Storage na Androidzie

Cloud Storage dla Firebase umożliwia przesyłanie i udostępnianie treści użytkowników (np. obrazów i filmów), dzięki czemu możesz umieszczać treści multimedialne w aplikacjach. Twoje dane są przechowywane w zasobniku Google Cloud Storage – 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 internetowych, co z łatwością obsługuje słabą sieć.

Wymagania wstępne

Dodaj Firebase do swojego projektu na Androida, jeśli jeszcze go nie masz.

Tworzenie domyślnego zasobnika Cloud Storage

  1. W panelu nawigacji konsoli Firebase wybierz Przechowywanie danych i kliknij Rozpocznij.

  2. Zapoznaj się z komunikatami o zabezpieczaniu danych w Cloud Storage za pomocą reguł zabezpieczeń. W trakcie programowania rozważ skonfigurowanie reguł dostępu publicznego.

  3. Wybierz lokalizację domyślnego zasobnika Cloud Storage.

    • To ustawienie lokalizacji to domyślna lokalizacja zasobów Google Cloud Platform (GCP) Twojego projektu. Pamiętaj, że ta lokalizacja będzie używana w przypadku usług GCP w projekcie, które wymagają ustawienia lokalizacji, a w szczególności 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. Został on ustawiony podczas tworzenia projektu lub przy konfigurowaniu innej usługi, która wymaga ustawienia lokalizacji.

    Jeśli korzystasz z abonamentu Blaze, możesz utworzyć wiele zasobników, każdy z własną lokalizacją.

  4. Kliknij Gotowe.

Skonfiguruj dostęp publiczny

Cloud Storage dla Firebase udostępnia deklaratywny język reguł, który pozwala określić strukturę danych, sposób ich indeksowania oraz czas odczytywania i zapisywania danych. Domyślnie uprawnienia do zapisu i odczytu w Cloud Storage są ograniczone, więc tylko uwierzytelnieni użytkownicy mogą odczytywać lub zapisywać dane. Aby rozpocząć bez konfigurowania uwierzytelniania, możesz skonfigurować reguły dostępu publicznego.

Dzięki temu usługa Cloud Storage jest otwarta dla wszystkich, nawet osób, które nie korzystają z Twojej aplikacji. Pamiętaj więc, aby ponownie ograniczyć dostęp do Cloud Storage podczas konfigurowania uwierzytelniania.

Dodaj do aplikacji pakiet SDK Cloud Storage

W pliku Gradle na poziomie modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność do biblioteki Cloud Storage na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie BOM Firebase na Androida.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.1.0"))

    // 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 wykorzystaniu BM od Firebase Android Twoja aplikacja zawsze będzie używała zgodnych wersji bibliotek Firebase na Androida.

(Alternatywnie) Dodaj zależności biblioteki Firebase bez użycia BoM.

Jeśli nie chcesz używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.

Pamiętaj, że jeśli w aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami biblioteki. Zapewni to zgodność wszystkich wersji.

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")
}
Szukasz modułu biblioteki dotyczącego konkretnego narzędzia Kotlin? Od października 2023 r. (Firebase BoM w wersji 32.5.0) deweloperzy korzystający z Kotlin i Javy mogą korzystać z modułu biblioteki głównej (szczegółowe informacje znajdziesz w odpowiedziach na najczęstsze pytania na temat tej inicjatywy).

Konfigurowanie Cloud Storage

Pierwszym krokiem w uzyskiwaniu 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.

Zobaczmy najpierw, jak utworzyć plik referencyjny Cloud Storage.

Konfiguracja zaawansowana

Oto kilka przypadków użycia, które wymagają dodatkowej konfiguracji:

Pierwszy przypadek użycia jest idealny, jeśli masz użytkowników na całym świecie i chcesz przechowywać ich dane w pobliżu. Możesz na przykład utworzyć zasobniki w USA, Europie i Azji do przechowywania danych użytkowników z tych regionów i skrócić czas oczekiwania.

Drugi przypadek użycia jest przydatny, jeśli masz dane o różnych wzorcach dostępu. Możesz na przykład skonfigurować zasobnik obejmujący wiele regionów lub jeden region, w którym są przechowywane obrazy lub inne często używane treści, a także zasobnik Nearline lub Coldline, w którym przechowywane są kopie zapasowe 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ę, taką jak Dysk Google, która pozwala użytkownikom logować się na wiele kont (np. na konto osobiste i konto służbowe). Do uwierzytelniania każdego dodatkowego konta możesz użyć niestandardowej instancji aplikacji Firebase.

Użyj wielu zasobników Cloud Storage

Jeśli chcesz użyć innego zasobnika Cloud Storage innego niż domyślny powyżej lub użyć kilku zasobników Cloud Storage w jednej aplikacji, możesz utworzyć instancję FirebaseStorage, która odwołuje się do Twojego 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 istniejącego zasobnika Cloud Storage do Firebase musisz przyznać Firebase dostęp do tych plików za pomocą narzędzia gsutil, które wchodzi w skład 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 we wprowadzeniu do projektów Firebase.

Nie ma to wpływu na nowo tworzone zasobniki, ponieważ mają one domyślną kontrolę dostępu umożliwiającą Firebase. Jest to rozwiązanie tymczasowe. W przyszłości będzie ono wykonywane automatycznie.

Użyj niestandardowej aplikacji Firebase

Jeśli tworzysz bardziej skomplikowaną aplikację, używając niestandardowego elementu FirebaseApp, możesz utworzyć wystąpienie FirebaseStorage zainicjowane przy użyciu tej aplikacji:

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