Z tego krótkiego wprowadzenia dowiesz się, jak skonfigurować Cloud Firestore, dodać dane i wyświetlić dodane przed chwilą dane w konsoli Firebase.
Tworzenie bazy danych Cloud Firestore
Jeśli nie masz jeszcze projektu Firebase, utwórz go: w konsoli Firebase kliknij Dodaj projekt, a następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby utworzyć projekt Firebase lub dodać usługi Firebase do istniejącego projektu GCP.
Otwórz sekcję Cloud Firestore w konsoli Firebase. Pojawi się prośba o wybranie istniejącego projektu Firebase. Postępuj zgodnie z procedurą tworzenia bazy danych.
Wybierz tryb początkowy reguł zabezpieczeń Cloud Firestore:
- Tryb testowy
Świetnie nadaje się do pracy z bibliotekami klienta mobilnego i internetowego, ale pozwala każdemu na odczytywanie i zastępowanie danych. Po zakończeniu testów zapoznaj się z sekcją Zabezpieczanie danych.
Aby zacząć korzystać z internetu, platform Apple lub pakietu Android SDK, wybierz tryb testowy.
- Tryb blokady
Odrzuca wszystkie odczyty i zapisy z klientów mobilnych oraz internetowych. Twoje uwierzytelnione serwery aplikacji (C#, Go, Java, Node.js, PHP, Python lub Ruby) nadal mogą uzyskać dostęp do Twojej bazy danych.
Aby zacząć korzystać z biblioteki klienta serwera C#, Go, Java, Node.js, PHP, Python lub Ruby, wybierz tryb blokady.
Początkowy zestaw reguł zabezpieczeń Cloud Firestore będzie stosowany do domyślnej bazy danych Cloud Firestore. Jeśli utworzysz w projekcie wiele baz danych, możesz wdrożyć reguły zabezpieczeń Cloud Firestore w każdej bazie.
Wybierz lokalizację na potrzeby bazy danych.
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 domyślnego zasobnika Cloud Storage 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.
Kliknij Gotowe.
Gdy włączysz Cloud Firestore, włączysz także interfejs API w menedżerze Cloud API.
Konfigurowanie środowiska programistycznego
Dodaj do aplikacji wymagane zależności i biblioteki klienta.
Interfejs API Web Namespaced
- Wykonaj instrukcje dodawania Firebase do aplikacji internetowej.
- Dodaj do aplikacji biblioteki Firebase i Cloud Firestore:
<script src="https://www.gstatic.com/firebasejs/10.11.1/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.11.1/firebase-firestore-compat.js"></script>
Pakiet SDK Cloud Firestore jest też dostępny jako pakiet npm.npm install firebase@10.11.1 --save
Musisz ręcznie włączyć zarówno Firebase, jak i Cloud Firestore.import firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
Web modular API
- Wykonaj instrukcje dodawania Firebase do aplikacji internetowej.
-
Pakiet SDK Cloud Firestore jest dostępny jako pakiet npm.
npm install firebase@10.11.1 --save
Musisz zaimportować zarówno Firebase, jak i Cloud Firestore.import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS lub nowszy
Wykonaj instrukcje dodawania Firebase do aplikacji Apple.
Do instalowania zależności Firebase i zarządzania nimi używaj menedżera pakietów Swift.
- Po otwarciu projektu aplikacji w Xcode wybierz File > Swift Packages > Add Package Dependency (Plik > Pakiety Swift > Dodaj zależność pakietu).
- Gdy pojawi się prośba, dodaj repozytorium pakietu SDK platformy Apple dla platform Firebase:
- Wybierz bibliotekę Firestore.
- Gdy skończysz, Xcode zacznie automatycznie rozpoznawać i pobierać zależności w tle.
https://github.com/firebase/firebase-ios-sdk
Android
- Wykonaj instrukcje dodawania Firebase do aplikacji na Androida.
- Korzystając z BoM Firebase Android, zadeklaruj zależność z biblioteką Cloud Firestore na Androida w pliku Gradle na poziomie modułu (aplikacji) (zwykle
app/build.gradle.kts
lubapp/build.gradle
).dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.0.0")) // Declare the dependency for the Cloud Firestore library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore") }
Korzystając z BOM Firebase na Androida, Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Zadeklaruj 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 { // Declare the dependency for the Cloud Firestore library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore:25.0.0") }
Szukasz modułu biblioteki specyficznego dla Kotlin? Od wersji z października 2023 r. deweloperzy aplikacji Kotlin i Java mogą polegać na głównym module biblioteki (szczegóły znajdziesz w odpowiedziach na najczęstsze pytania na temat tej inicjatywy).
Dart
- Skonfiguruj i zainicjuj Firebase w aplikacji Flutter, jeśli jeszcze tego nie zrobiłeś.
- Aby zainstalować wtyczkę z poziomu katalogu głównego projektu Flutter, uruchom to polecenie:
flutter pub add cloud_firestore
- Gdy skończysz, ponownie skompiluj aplikację Flutter:
flutter run
- Opcjonalnie: popraw czasy kompilacji na iOS i macOS, dodając wstępnie skompilowaną platformę.
Obecnie pakiet SDK Firestore na iOS wymaga kodu, którego kompilacja w Xcode może zająć nawet 5 minut. Aby znacznie skrócić czas kompilacji, możesz użyć wstępnie skompilowanej wersji, dodając ten wiersz do bloku
target 'Runner' do
w pliku Podfile:target 'Runner' do use_frameworks! use_modular_headers! pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => 'IOS_SDK_VERSION' flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) target 'RunnerTests' do inherit! :search_paths end end
Zastąp IOS_SDK_VERSION wersją pakietu SDK Firebase na iOS podaną w pliku
firebase_sdk_version.rb
firebase_core
. Jeśli nie używasz najnowszej wersjifirebase_core
, poszukaj tego pliku w lokalnej pamięci podręcznej pakietów Publikacji (zwykle~/.pub-cache
).Sprawdź też, czy masz uaktualnione CocoaPods do wersji 1.9.1 lub nowszej:
gem install cocoapods
Więcej informacji znajdziesz w problemie na GitHubie.
Java
- Dodaj do aplikacji pakiet Firebase Admin SDK:
-
Przy użyciu Gradle:
compile 'com.google.firebase:firebase-admin:1.32.0'
-
Korzystanie z narzędzia Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>1.32.0</version> </dependency>
-
Przy użyciu Gradle:
- Wykonaj poniższe instrukcje, aby zainicjować Cloud Firestore przy użyciu odpowiednich danych logowania w swoim środowisku.
Python
- Dodaj pakiet Firebase Admin SDK do aplikacji w Pythonie:
pip install --upgrade firebase-admin
- Wykonaj poniższe instrukcje, aby zainicjować Cloud Firestore przy użyciu odpowiednich danych logowania w swoim środowisku.
C++
- Wykonaj instrukcje dodawania Firebase do projektu C++.
- Interfejs C++ na Androida.
- Zależności Gradle. Dodaj ten kod do pliku Gradle modułu (na poziomie aplikacji) (zwykle
app/build.gradle
):android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { // earlier entries auth firestore }
- Zależności binarne. Zalecamy też dodanie do pliku
CMakeLists.txt
tego kodu:add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) set(firebase_libs firebase_auth firebase_firestore firebase_app) # Replace the target name below with the actual name of your target, # for example, "native-lib". target_link_libraries(${YOUR_TARGET_NAME_HERE} "${firebase_libs}")
- Aby skonfigurować integrację z komputerem, przeczytaj artykuł Dodawanie Firebase do projektu C++.
Unity
- Postępuj zgodnie z instrukcjami, aby dodać Firebase do projektu Unity.
- Użyj interfejsu Unity, aby skonfigurować projekt pod kątem minifikacji kompilacji Androida.
- Tę opcję znajdziesz, klikając Ustawienia odtwarzacza > Android > Ustawienia publikowania > Zmniejsz.
- Opcje mogą się różnić w zależności od wersji Unity, więc zapoznaj się z oficjalną dokumentacją Unity i przewodnikiem po debugowaniu kompilacji Firebase Unity.
-
Jeśli po włączeniu minifikacji liczba przywoływanych metod nadal przekracza limit, inną opcją jest włączenie funkcji
multidex
w:-
mainTemplate.gradle
, jeśli w sekcji Ustawienia odtwarzacza włączony jest Niestandardowy szablon Gradle. -
lub plik
build.gradle
na poziomie modułu, jeśli tworzysz wyeksportowany projekt przy użyciu Android Studio.
-
Aby uniknąć komunikatu Error while merging dex archives
, musisz zmniejszyć kompilację.
Node.js
-
Dodaj do aplikacji pakiet Firebase Admin SDK:
npm install firebase-admin --save
- Wykonaj poniższe instrukcje, aby zainicjować Cloud Firestore przy użyciu odpowiednich danych logowania w swoim środowisku.
Go
- Dodaj pakiet Firebase Admin SDK do aplikacji w języku Go:
go get firebase.google.com/go
- Wykonaj poniższe instrukcje, aby zainicjować Cloud Firestore przy użyciu odpowiednich danych logowania w swoim środowisku.
PHP
-
Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają do uwierzytelniania domyślnych danych logowania aplikacji Google.
-
Aby uwierzytelnić się w środowisku programistycznym, ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
tak, aby wskazywała plik klucza konta usługi JSON. Plik klucza możesz utworzyć na stronie danych logowania Konsoli interfejsów API.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- W środowisku produkcyjnym nie musisz uwierzytelniać się, jeśli aplikacja jest uruchamiana w App Engine lub Compute Engine przy użyciu tego samego projektu, którego używasz w Cloud Firestore. W innym przypadku skonfiguruj konto usługi.
-
Aby uwierzytelnić się w środowisku programistycznym, ustaw zmienną środowiskową
- Zainstaluj i włącz rozszerzenie gRPC dla PHP, które będzie potrzebne do użycia biblioteki klienta.
-
Dodaj do aplikacji bibliotekę PHP Cloud Firestore:
composer require google/cloud-firestore
C#
-
Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają do uwierzytelniania domyślnych danych logowania aplikacji Google.
-
Aby uwierzytelnić się w środowisku programistycznym, ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
tak, aby wskazywała plik klucza konta usługi JSON. Plik klucza możesz utworzyć na stronie danych logowania Konsoli interfejsów API.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- W środowisku produkcyjnym nie musisz uwierzytelniać się, jeśli aplikacja jest uruchamiana w App Engine lub Compute Engine przy użyciu tego samego projektu, którego używasz w Cloud Firestore. W innym przypadku skonfiguruj konto usługi.
-
Aby uwierzytelnić się w środowisku programistycznym, ustaw zmienną środowiskową
-
Dodaj bibliotekę C# Cloud Firestore do aplikacji w pliku
.csproj
:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
-
Dodaj do pliku
Program.cs
te informacje:using Google.Cloud.Firestore;
Ruby
-
Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają do uwierzytelniania domyślnych danych logowania aplikacji Google.
-
Aby uwierzytelnić się w środowisku programistycznym, ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
tak, aby wskazywała plik klucza konta usługi JSON. Plik klucza możesz utworzyć na stronie danych logowania Konsoli interfejsów API.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- W środowisku produkcyjnym nie musisz uwierzytelniać się, jeśli aplikacja jest uruchamiana w App Engine lub Compute Engine przy użyciu tego samego projektu, którego używasz w Cloud Firestore. W innym przypadku skonfiguruj konto usługi.
-
Aby uwierzytelnić się w środowisku programistycznym, ustaw zmienną środowiskową
-
Dodaj bibliotekę Cloud Firestore Ruby do aplikacji w
Gemfile
:gem "google-cloud-firestore"
-
Zainstaluj zależności z:
Gemfile
za pomocą:bundle install
(Opcjonalnie) Prototypowanie i testowanie w Pakiecie emulatorów lokalnych Firebase
Zanim deweloperzy aplikacji mobilnych zaczną mówić o sposobie zapisu i odczytu w Cloud Firestore, przedstawimy zestaw narzędzi, które umożliwiają prototypowanie i testowanie funkcji Cloud Firestore: pakiet emulatorów lokalnych Firebase. Jeśli testujesz różne modele danych, optymalizujesz reguły zabezpieczeń lub szukasz najbardziej opłacalnego sposobu na interakcję z backendem, możliwość pracy lokalnej bez wdrażania aktywnych usług może być bardzo pomocna.
Emulator Cloud Firestore jest częścią pakietu emulatorów lokalnych, który umożliwia aplikacji interakcję z treścią i konfiguracją emulowanej bazy danych, a także opcjonalnie emulowane zasoby projektu (funkcje, inne bazy danych i reguły zabezpieczeń).
Użycie emulatora Cloud Firestore wymaga tylko kilku kroków:
- Dodanie wiersza kodu do konfiguracji testowej aplikacji w celu połączenia z emulatorem.
- Uruchomienie aplikacji
firebase emulators:start
w katalogu głównym projektu lokalnego. - Wykonywanie wywołań z prototypowego kodu aplikacji za pomocą pakietu SDK platformy Cloud Firestore.
Dostępny jest szczegółowy przewodnik dotyczący Cloud Firestore i Cloud Functions. Zapoznaj się też z wprowadzeniem do pakietu emulatorów lokalnych.
Inicjowanie Cloud Firestore
Zainicjuj instancję Cloud Firestore:
Web modular API
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = getFirestore(app);
Zastąp FIREBASE_CONFIGURATION wartością firebaseConfig
Twojej aplikacji internetowej.
Aby zachować dane, gdy urządzenie utraci połączenie, zapoznaj się z dokumentacją Włączanie danych offline.
Interfejs API Web Namespaced
import firebase from "firebase/app"; import "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = firebase.firestore();
Zastąp FIREBASE_CONFIGURATION wartością firebaseConfig
Twojej aplikacji internetowej.
Aby zachować dane, gdy urządzenie utraci połączenie, zapoznaj się z dokumentacją Włączanie danych offline.
Swift ,
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
Objective-C
@import FirebaseCore; @import FirebaseFirestore; // Use Firebase library to configure APIs [FIRApp configure];
FIRFirestore *defaultFirestore = [FIRFirestore firestore];
Kotlin+KTX
// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore
Java
// Access a Cloud Firestore instance from your Activity
FirebaseFirestore db = FirebaseFirestore.getInstance();
Dart
db = FirebaseFirestore.instance;
Java
Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od środowiska. Poniżej przedstawiamy najpopularniejsze metody. Więcej informacji znajdziesz w artykule o inicjowaniu pakietu Admin SDK.import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Aby używać pakietu SDK Firebase na własnym serwerze, użyj konta usługi.
W konsoli Google Cloud otwórz Administracja > Konta usługi. Wygeneruj nowy klucz prywatny i zapisz plik JSON. Następnie użyj tego pliku do zainicjowania pakietu SDK:
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Python
Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od środowiska. Poniżej przedstawiamy najpopularniejsze metody. Więcej informacji znajdziesz w artykule o inicjowaniu pakietu Admin SDK.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Do zainicjowania pakietu SDK można też użyć istniejących domyślnych danych logowania aplikacji.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore.client()
Aby używać pakietu SDK Firebase na własnym serwerze, użyj konta usługi.
W konsoli Google Cloud otwórz Administracja > Konta usługi. Wygeneruj nowy klucz prywatny i zapisz plik JSON. Następnie użyj tego pliku do zainicjowania pakietu SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore.client()
Python
Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od środowiska. Poniżej przedstawiamy najpopularniejsze metody. Więcej informacji znajdziesz w artykule o inicjowaniu pakietu Admin SDK.import firebase_admin from firebase_admin import firestore_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()
Do zainicjowania pakietu SDK można też użyć istniejących domyślnych danych logowania aplikacji.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore_async.client()
Aby używać pakietu SDK Firebase na własnym serwerze, użyj konta usługi.
W konsoli Google Cloud otwórz Administracja > Konta usługi. Wygeneruj nowy klucz prywatny i zapisz plik JSON. Następnie użyj tego pliku do zainicjowania pakietu SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore_async.client()
C++
// Make sure the call to `Create()` happens some time before you call Firestore::GetInstance(). App::Create(); Firestore* db = Firestore::GetInstance();
Node.js
Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od środowiska. Poniżej przedstawiamy najpopularniejsze metody. Więcej informacji znajdziesz w artykule o inicjowaniu pakietu Admin SDK.-
Zainicjuj w Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Zainicjuj w Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
Inicjowanie na własnym serwerze
Aby używać pakietu SDK Firebase na własnym serwerze (lub w dowolnym innym środowisku Node.js), użyj konta usługi. W konsoli Google Cloud otwórz Administracja > Konta usługi. Wygeneruj nowy klucz prywatny i zapisz plik JSON. Następnie użyj tego pliku do zainicjowania pakietu SDK:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Go
Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od środowiska. Poniżej przedstawiamy najpopularniejsze metody. Więcej informacji znajdziesz w artykule o inicjowaniu pakietu Admin SDK.import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config{ProjectID: projectID} app, err := firebase.NewApp(ctx, conf) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
Aby używać pakietu SDK Firebase na własnym serwerze, użyj konta usługi.
W konsoli Google Cloud otwórz Administracja > Konta usługi. Wygeneruj nowy klucz prywatny i zapisz plik JSON. Następnie użyj tego pliku do zainicjowania pakietu SDK:
import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use a service account ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
PHP
PHP
Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz w bibliotece klienta Cloud Firestore.
Unity
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
C#
C#
Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz w bibliotece klienta Cloud Firestore.
Ruby
Dodaj dane
Cloud Firestore przechowuje dane w dokumentach, które są przechowywane w kolekcjach. Gdy dodajesz dane do dokumentu po raz pierwszy, Cloud Firestore tworzy domyślnie kolekcje i dokumenty. Nie musisz samodzielnie tworzyć kolekcji ani dokumentów.
Utwórz nową kolekcję i dokument, korzystając z podanego niżej przykładowego kodu.
Web modular API
import { collection, addDoc } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Ada", last: "Lovelace", born: 1815 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Interfejs API Web Namespaced
db.collection("users").add({ first: "Ada", last: "Lovelace", born: 1815 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a new document with a generated ID do { let ref = try await db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Objective-C
// Add a new document with a generated ID __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Ada", @"last": @"Lovelace", @"born": @1815 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// Create a new user with a first and last name val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Ada"); user.put("last", "Lovelace"); user.put("born", 1815); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Ada", "last": "Lovelace", "born": 1815 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
Java
Python
Python
C++
// Add a new document with a generated ID Future<DocumentReference> user_ref = db->Collection("users").Add({{"first", FieldValue::String("Ada")}, {"last", FieldValue::String("Lovelace")}, {"born", FieldValue::Integer(1815)}}); user_ref.OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz w bibliotece klienta Cloud Firestore.
Unity
DocumentReference docRef = db.Collection("users").Document("alovelace"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Ada" }, { "Last", "Lovelace" }, { "Born", 1815 }, }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the alovelace document in the users collection."); });
C#
Ruby
Teraz dodaj kolejny dokument do kolekcji users
. Zwróć uwagę, że ten dokument zawiera parę klucz-wartość (drugą nazwę), która nie występuje w pierwszym dokumencie. Dokumenty w kolekcji mogą zawierać różne zbiory informacji.
Web modular API
// Add a second document with a generated ID. import { addDoc, collection } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Interfejs API Web Namespaced
// Add a second document with a generated ID. db.collection("users").add({ first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a second document with a generated ID. do { let ref = try await db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Objective-C
// Add a second document with a generated ID. __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Alan", @"middle": @"Mathison", @"last": @"Turing", @"born": @1912 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// Create a new user with a first, middle, and last name val user = hashMapOf( "first" to "Alan", "middle" to "Mathison", "last" to "Turing", "born" to 1912, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first, middle, and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Alan"); user.put("middle", "Mathison"); user.put("last", "Turing"); user.put("born", 1912); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
Java
Python
Python
C++
db->Collection("users") .Add({{"first", FieldValue::String("Alan")}, {"middle", FieldValue::String("Mathison")}, {"last", FieldValue::String("Turing")}, {"born", FieldValue::Integer(1912)}}) .OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz w bibliotece klienta Cloud Firestore.
Unity
DocumentReference docRef = db.Collection("users").Document("aturing"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Alan" }, { "Middle", "Mathison" }, { "Last", "Turing" }, { "Born", 1912 } }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the aturing document in the users collection."); });
C#
Ruby
Odczyt danych
Korzystając z przeglądarki danych w konsoli Firebase, możesz szybko sprawdzić, czy dane zostały dodane do Cloud Firestore.
Możesz też użyć metody „get”, aby pobrać całą kolekcję.
Web modular API
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); });
Interfejs API Web Namespaced
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
Swift
do { let snapshot = try await db.collection("users").getDocuments() for document in snapshot.documents { print("\(document.documentID) => \(document.data())") } } catch { print("Error getting documents: \(error)") }
Objective-C
[[self.db collectionWithPath:@"users"] getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error getting documents: %@", error); } else { for (FIRDocumentSnapshot *document in snapshot.documents) { NSLog(@"%@ => %@", document.documentID, document.data); } } }];
Kotlin+KTX
db.collection("users") .get() .addOnSuccessListener { result -> for (document in result) { Log.d(TAG, "${document.id} => ${document.data}") } } .addOnFailureListener { exception -> Log.w(TAG, "Error getting documents.", exception) }
Java
db.collection("users") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { Log.d(TAG, document.getId() + " => " + document.getData()); } } else { Log.w(TAG, "Error getting documents.", task.getException()); } } });
Dart
await db.collection("users").get().then((event) { for (var doc in event.docs) { print("${doc.id} => ${doc.data()}"); } });
Java
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
C++
Future<QuerySnapshot> users = db->Collection("users").Get(); users.OnCompletion([](const Future<QuerySnapshot>& future) { if (future.error() == Error::kErrorOk) { for (const DocumentSnapshot& document : future.result()->documents()) { std::cout << document << std::endl; } } else { std::cout << "Error getting documents: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz w bibliotece klienta Cloud Firestore.
Unity
CollectionReference usersRef = db.Collection("users"); usersRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { QuerySnapshot snapshot = task.Result; foreach (DocumentSnapshot document in snapshot.Documents) { Debug.Log(String.Format("User: {0}", document.Id)); Dictionary<string, object> documentDictionary = document.ToDictionary(); Debug.Log(String.Format("First: {0}", documentDictionary["First"])); if (documentDictionary.ContainsKey("Middle")) { Debug.Log(String.Format("Middle: {0}", documentDictionary["Middle"])); } Debug.Log(String.Format("Last: {0}", documentDictionary["Last"])); Debug.Log(String.Format("Born: {0}", documentDictionary["Born"])); } Debug.Log("Read all data from the users collection."); });
C#
Ruby
Zabezpieczanie danych
Jeśli używasz pakietu SDK platformy internetowej, Android lub Apple, zabezpiecz swoje dane w Cloud Firestore za pomocą uwierzytelniania Firebase i reguł zabezpieczeń Cloud Firestore.
Oto kilka podstawowych zestawów reguł, od których możesz zacząć. Reguły zabezpieczeń możesz modyfikować na karcie Reguły w konsoli.
Wymagane uwierzytelnienie
// Allow read/write access to a document keyed by the user's UID
service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth != null && request.auth.uid == uid;
}
}
}
Tryb blokady
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Zanim wdrożysz aplikację internetową, aplikację na Androida lub iOS w środowisku produkcyjnym, zadbaj też o to, aby dostęp do danych Cloud Firestore miały tylko klienty aplikacji. Zapoznaj się z dokumentacją Sprawdzania aplikacji.
Jeśli używasz jednego z pakietów SDK serwera, wykorzystaj Identity and Access Management (IAM), aby zabezpieczyć swoje dane w Cloud Firestore.
Obejrzyj samouczek wideo
Aby dowiedzieć się, jak zacząć korzystać z mobilnych bibliotek klienta Cloud Firestore, obejrzyj jeden z tych samouczków wideo:
Web
iOS lub nowszy
Android
Więcej filmów znajdziesz na kanale Firebase w YouTube.
Dalsze kroki
Poszerz swoją wiedzę, zapoznając się z tymi tematami:
- Ćwiczenia z programowania – dowiedz się, jak korzystać z Cloud Firestore w rzeczywistej aplikacji, wykonując ćwiczenia z programowania na Androida, iOS lub stronę internetową.
- Model danych – dowiedz się więcej o strukturze danych w Cloud Firestore, w tym o danych hierarchicznych i podzbiorach.
- Dodawanie danych – dowiedz się więcej o tworzeniu i aktualizowaniu danych w Cloud Firestore.
- Pobieranie danych – dowiedz się więcej o pobieraniu danych.
- Wykonywanie prostych i złożonych zapytań – dowiedz się, jak uruchamiać proste i złożone zapytania.
- Zapytania dotyczące zamówień i limitów Dowiedz się, jak sortować dane i ograniczać ilość danych zwracanych przez zapytania.