Catch up on everthing we announced at this year's Firebase Summit. Learn more

Zacznij korzystać z Cloud Storage dla C++

Cloud Storage dla Firebase umożliwia przesyłanie i udostępnianie treści generowanych przez użytkowników, takich jak obrazy i filmy, co pozwala na tworzenie treści multimedialnych w aplikacjach. Twoje dane są przechowywane w Google Cloud Storage wiadro - skalę exabyte rozwiązania pamięci masowej o wysokiej dostępności obiektu i globalnego redundancji. 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ą obsługując niestabilne sieci.

Zanim zaczniesz

Zanim będzie można używać Cloud Storage , musisz:

  • Zarejestruj swój projekt C++ i skonfiguruj go do korzystania z Firebase.

    Jeśli Twój projekt C++ korzysta już z Firebase, oznacza to, że jest już zarejestrowany i skonfigurowany dla Firebase.

  • Dodaj Firebase C ++ SDK do swojego projektu C ++.

Należy pamiętać, że dodanie Firebase do C ++ projekt obejmuje zadania zarówno w konsoli Firebase iw swoim C ++ otwartego projektu (na przykład, można pobrać pliki konfiguracyjne Firebase z konsoli, a następnie przenieść je do C ++ projektu).

Utwórz domyślny zasobnik Cloud Storage

  1. W okienku nawigacyjnym konsoli Firebase wybierz Storage, a następnie kliknij przycisk Rozpocznij.

  2. Zapoznaj się z komunikatem o zabezpieczaniu danych Cloud Storage za pomocą reguł zabezpieczeń. Podczas rozwoju, należy rozważyć konfigurowania zasady publicznego dostępu .

  3. Wybierz lokalizację dla swojego domyślnego Cloud Storage.

    • To ustawienie jest lokalizacja Twojego projektu domyślny Google Cloud Platform (GCP) lokalizacja zasobów . Zauważ, że ta lokalizacja zostanie wykorzystany na usługi GCP w projekcie, które wymagają ustawienie lokalizacji, konkretnie swojej Chmura FireStore bazy i swojej App Engine aplikacji (co jest wymagane w przypadku korzystania Chmura Scheduler).

    • Jeśli nie możesz wybrać lokalizacji, oznacza to, że Twój projekt ma już domyślną lokalizację zasobu GCP. Została ustawiona albo podczas tworzenia projektu, albo podczas konfigurowania innej usługi, która wymaga ustawienia lokalizacji.

    Jeśli jesteś na planie Blaze, można utworzyć wiele wiader , każdy z własnym miejscu .

  4. Kliknij Gotowe.

Skonfiguruj dostęp publiczny

Cloud Storage dla Firebase udostępnia deklaratywny język reguł, który umożliwia zdefiniowanie struktury danych, sposobu ich indeksowania oraz czasu odczytywania i zapisywania danych. 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 , można skonfigurować zasady publicznego dostępu .

Dzięki temu Cloud Storage jest dostępny dla każdego, nawet dla osób, które nie korzystają z Twojej aplikacji, więc pamiętaj o ponownym ograniczeniu Cloud Storage podczas konfigurowania uwierzytelniania.

Tworzenie i zainicjować firebase::App

Aby można było uzyskać dostęp do Cloud Storage, musisz utworzyć i zainicjować firebase::App .

Dołączyć plik nagłówkowy dla firebase::App :

#include "firebase/app.h"

Android

Tworzenie firebase::App , przekazując JNI środowiska i jobject odniesienie do działalności Java jako argumenty:

app = App::Create(AppOptions(), jni_env, activity);

iOS+

Tworzenie firebase::App :

app = App::Create(AppOptions());

Uzyskaj dostęp do firebase::storage::Storage klasa

firebase::storage::Storage klasa jest punktem wyjścia dla Cloud Storage C ++ SDK.

Storage* storage = Storage::GetInstance(app);

Możesz zacząć korzystać z Cloud Storage!

Najpierw dowiedz się, jak utworzyć odwołanie Cloud Storage .

Ustawienia zaawansowane

Istnieje 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 ich pobliżu. Możesz na przykład utworzyć zasobniki w Stanach Zjednoczonych, Europie i Azji, aby przechowywać dane użytkowników w tych regionach, aby skrócić czas oczekiwania.

Drugi przypadek użycia jest pomocny, jeśli masz dane o różnych wzorcach dostępu. Na przykład: możesz skonfigurować wieloregionalny lub regionalny zasobnik, który przechowuje zdjęcia lub inną często dostępną zawartość, oraz zasobnik nearline lub coldline, który przechowuje kopie zapasowe użytkowników lub inne rzadko używane treści.

W każdym z tych przypadków użycia, będziemy chcieli, aby korzystać z wielu wiadra Cloud Storage .

Trzeci przypadek użycia jest przydatny, jeśli tworzysz aplikację, taką jak Dysk Google, która umożliwia użytkownikom zalogowanie się na wiele kont (na przykład konto osobiste i konto służbowe). Można użyć niestandardowego Firebase App instancji w celu uwierzytelnienia każdego dodatkowego konta.

Użyj wielu zasobników Cloud Storage

Jeśli chcesz używać Cloud Storage wiadro inny niż domyślny podany powyżej, lub wykorzystać kilka wiader Cloud Storage w jednej aplikacji, można utworzyć instancję firebase::storage::Storage że odniesienia niestandardowego wieloczynnościowy:

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("gs://my-custom-bucket");

Praca z importowanymi zasobnikami

Podczas importowania istniejącego Cloud Storage do Firebase, trzeba przyznać Firebase możliwość dostępu do tych plików za pomocą gsutil narzędzie, zawarte w Google Cloud SDK :

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

Można znaleźć numer projektu zgodnie z opisem w wstępie do projektów Firebase .

Nie ma to wpływu na nowo utworzone zasobniki, ponieważ mają one domyślną kontrolę dostępu, która zezwala na Firebase. Jest to środek tymczasowy i będzie wykonywany automatycznie w przyszłości.

Użyj niestandardowej aplikacji Firebase

Jeśli budowanie bardziej skomplikowanych aplikacji przy użyciu niestandardowego firebase::App , można utworzyć instancję firebase::storage::Storage zainicjowany z tej aplikacji:

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

Następne kroki