Z tego krótkiego wprowadzenia dowiesz się, jak skonfigurować usługę Cloud Firestore, dodać dane, a następnie wyświetlić dodane przed chwilą w konsoli Firebase.
Tworzenie bazy danych Cloud Firestore
Jeśli jeszcze nie masz projektu Firebase, utwórz go w Konsola Firebase kliknij Dodaj projekt. i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby utworzyć projekt Firebase lub dodać usługi Firebase do istniejącego projektu GCP.
Przejdź do sekcji Cloud Firestore Konsola Firebase. Pojawi się prośba o wybranie istniejącego projektu Firebase. Postępuj zgodnie z procedurą tworzenia bazy danych.
Wybierz tryb początkowy dla urządzenia Cloud Firestore Security Rules:
- Tryb testowy
Dobre rozwiązanie w przypadku rozpoczynania pracy z bibliotekami klienta mobilnego i internetowego, ale pozwala każdemu na odczyt i zastępowanie Twoich danych. Po zakończeniu testów upewnij się, że zapoznaj się z sekcją Zabezpieczanie danych.
Aby zacząć korzystać z internetu, platform Apple lub pakietu SDK na Androida, wybierz tryb testowy.
- Tryb blokady
Blokuje wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji (C#, Go, Java, Node.js, PHP, Python lub Ruby) nadal może uzyskać dostęp do bazy danych.
Aby zacząć korzystać z języków C#, Go, Java, Node.js, PHP, Python lub Ruby w bibliotece klienta serwera, wybierz tryb blokady.
Początkowy zestaw wartości Cloud Firestore Security Rules będzie stosowany do domyślnego Cloud Firestore. Jeśli w projekcie tworzysz wiele baz danych, możesz wdrożyć Cloud Firestore Security Rules w każdej bazie danych.
Wybierz lokalizację bazy danych.
To ustawienie lokalizacji jest powiązane z ustawieniami domyślna lokalizacja zasobów Google Cloud Platform (GCP). Pamiętaj, że ta lokalizacja będzie używana w przypadku usług GCP w Twoim projekcie które wymagają ustawienia lokalizacji, a zwłaszcza domyślnego Cloud Storage i aplikacja App Engine (czyli wymagane, jeśli używasz usługi Cloud Scheduler).
Jeśli nie możesz wybrać lokalizacji, oznacza to, że Twój projekt już tam jest. ma domyślną lokalizację zasobów GCP. Został ustawiony podczas projektu lub podczas konfigurowania innej usługi, która wymaga podania lokalizacji. .
Kliknij Gotowe.
Gdy włączysz Cloud Firestore, spowoduje to również włączenie interfejsu API w Menedżer interfejsów API Cloud.
Konfigurowanie środowiska programistycznego
Dodaj do aplikacji wymagane zależności i biblioteki klienta.
Web
- Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji internetowej.
- Dodaj biblioteki Firebase i Cloud Firestore do swojej aplikacji:
Pakiet npm Cloud Firestore jest też dostępny jako pakiet npm.<script src="https://www.gstatic.com/firebasejs/10.13.1/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.13.1/firebase-firestore-compat.js"></script>
Musisz ręcznie wymagać zarówno Firebase, jak i Cloud Firestore.npm install firebase@10.13.1 --save
import firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
Web
- Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji internetowej.
-
Pakiet SDK Cloud Firestore jest dostępny jako pakiet npm.
Musisz zaimportować zarówno Firebase, jak i Cloud Firestore.npm install firebase@10.13.1 --save
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS+
Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji Apple.
Użyj menedżera pakietów Swift, aby zainstalować zależności Firebase i nimi zarządzać.
- W Xcode po otwarciu projektu aplikacji przejdź do File > Pakiety Swift > Dodaj zależność pakietu.
- Gdy pojawi się prośba, dodaj repozytorium SDK platform Apple Platform SDK Firebase:
- Wybierz bibliotekę Firestore.
- Po zakończeniu Xcode automatycznie rozpocznie rozpoznawanie i pobieranie lub zależności w tle.
https://github.com/firebase/firebase-ios-sdk
Android
- Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji na Androida.
- Korzystanie z
Firebase Android BoM,
zadeklaruj zależność z biblioteką Cloud Firestore dla Androida w
Twój plik Gradle (na poziomie modułu)
(zwykle
app/build.gradle.kts
lubapp/build.gradle
).dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.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") }
Za pomocą Firebase Android BoM, Twoja aplikacja zawsze będzie używać zgodnych wersji Firebase na Androida biblioteki.
(Wersja alternatywna) Zadeklaruj zależności bibliotek Firebase bez użycia atrybutu BoM
Jeśli zdecydujesz się nie używać dokumentu Firebase BoM, musisz określić każdy z nich Wersja biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli używasz wielu bibliotek Firebase w Twojej aplikacji, zalecamy zarządzanie biblioteką za pomocą aplikacji BoM dzięki czemu są one zgodne.
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.1.0") }
Szukasz modułu biblioteki korzystającego z usługi Kotlin? Zaczyna się od Wersja z października 2023 r., zarówno programiści Kotlin, jak i Javy mogą korzystać z głównego modułu biblioteki (szczegółowe informacje znajdziesz w Najczęstsze pytania na temat tej inicjatywy).
Dart
- W razie potrzeby skonfiguruj zainicjować Firebase w aplikacji Flutter.
- W katalogu głównym projektu Flutter uruchom to polecenie, aby
Zainstaluj wtyczkę:
flutter pub add cloud_firestore
- Po zakończeniu ponownie skompiluj aplikację Flutter:
flutter run
- Opcjonalnie: ulepsz iOS i Czasy kompilacji macOS przez dodanie parametru
gotowej struktury.
Obecnie pakiet SDK Firestore na iOS zależy od kodu, który może zająć zajmuje więcej niż 5 minut, aby utworzyć w Xcode. Aby skrócić czas kompilacji możesz użyć wstępnie skompilowanej wersji, dodając ten wiersz do blok
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ą Firebase iOS Pakiet SDK określony w
firebase_core
firebase_sdk_version.rb
. . Jeśli nie używasz najnowszej wersjifirebase_core
, poszukaj tego pliku w lokalnym pakiecie Pub pamięć podręczna (zwykle~/.pub-cache
).Dodatkowo upewnij się, że masz uaktualnione CocoaPods do wersji 1.9.1 lub wyższe:
gem install cocoapods
Więcej informacji: problem w GitHubie.
Java
- Dodaj do aplikacji pakiet SDK Firebase Admin:
-
Używanie 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>
-
Używanie Gradle:
- Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
Python
- Dodaj pakiet SDK Firebase Admin do aplikacji w Pythonie:
pip install --upgrade firebase-admin
- Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
C++
- Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojego projektu w C++,
- Interfejs C++ na Androida.
- Zależności Gradle. Dodaj do modułu te elementy
Plik Gradle (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 plików binarnych. Zalecany sposób uzyskiwania
zależności binarne są dodanie tego do pliku
CMakeLists.txt
plik: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}")
- Instrukcje konfigurowania integracji z komputerami znajdziesz w artykule Dodawanie Firebase do projektu C++.
Unity
- Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej platformy Unity projekt.
- Użyj interfejsu Unity, aby skonfigurować w projekcie zmniejszanie kompilacji Androida.
- Tę opcję znajdziesz w Ustawieniach odtwarzacza > Android > Publikowanie Ustawienia > Zmniejsz.
- Te opcje mogą się różnić w zależności od wersji Unity, więc zapoznaj się z oficjalnej dokumentacji Unity oraz Przewodnik po debugowaniu kompilacji Unity w Firebase
-
Jeśli po włączeniu minifikacji liczba przywołanych metod nadal
przekracza limit, inną opcją jest włączenie
multidex
w:-
mainTemplate.gradle
, jeśli w sekcji Ustawienia gracza włączono Niestandardowy szablon Gradle -
lub plik
build.gradle
na poziomie modułu, jeśli do utworzenia wyeksportowanego projektu używasz Android Studio.
-
Aby uniknąć komunikatu Error while merging dex archives
, musisz zmniejszyć kompilację.
Node.js
-
Dodaj do aplikacji pakiet SDK Firebase Admin:
npm install firebase-admin --save
- Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
Go
- Dodaj pakiet SDK Firebase Admin do aplikacji w języku Go:
go get firebase.google.com/go
- Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
PHP
-
Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają
Domyślne dane uwierzytelniające aplikacji Google
do uwierzytelniania.
-
Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw
GOOGLE_APPLICATION_CREDENTIALS
zmiennej środowiskowej wskazującej plik klucza konta usługi JSON. Możesz utworzyć plik klucza na stronie Dane logowania Konsoli interfejsów API.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- W środowisku produkcyjnym nie musisz się uwierzytelniać, jeśli korzystasz z aplikacji. w App Engine lub Compute Engine, korzystając z tego samego projektu, którego używasz w Cloud Firestore. W przeciwnym razie skonfigurować konto usługi.
-
Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw
- Zainstaluj i włącz rozszerzenie gRPC do języka PHP. Należy użyć biblioteki klienta.
-
Dodaj bibliotekę PHP Cloud Firestore do swojej aplikacji:
composer require google/cloud-firestore
C#
-
Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają
Domyślne dane uwierzytelniające aplikacji Google
do uwierzytelniania.
-
Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw
GOOGLE_APPLICATION_CREDENTIALS
zmiennej środowiskowej wskazującej plik klucza konta usługi JSON. Możesz utworzyć plik klucza na stronie Dane logowania Konsoli interfejsów API.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- W środowisku produkcyjnym nie musisz się uwierzytelniać, jeśli korzystasz z aplikacji. w App Engine lub Compute Engine, korzystając z tego samego projektu, którego używasz w Cloud Firestore. W przeciwnym razie skonfigurować konto usługi.
-
Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw
-
Dodaj bibliotekę Cloud Firestore C# do swojej aplikacji w pliku
.csproj
:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
-
Dodaj do pliku
Program.cs
te wiersze:using Google.Cloud.Firestore;
Ruby
-
Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają
Domyślne dane uwierzytelniające aplikacji Google
do uwierzytelniania.
-
Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw
GOOGLE_APPLICATION_CREDENTIALS
zmiennej środowiskowej wskazującej plik klucza konta usługi JSON. Możesz utworzyć plik klucza na stronie Dane logowania Konsoli interfejsów API.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- W środowisku produkcyjnym nie musisz się uwierzytelniać, jeśli korzystasz z aplikacji. w App Engine lub Compute Engine, korzystając z tego samego projektu, którego używasz w Cloud Firestore. W przeciwnym razie skonfigurować konto usługi.
-
Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw
-
Dodaj bibliotekę Cloud Firestore Ruby do swojej aplikacji w:
Gemfile
:gem "google-cloud-firestore"
-
Zainstaluj zależności z urządzenia
Gemfile
za pomocą:bundle install
(Opcjonalnie) Prototypowanie i testowanie przy użyciu Firebase Local Emulator Suite
Dla deweloperów aplikacji mobilnych: zanim zaczniesz rozmawiać o tym, jak aplikacja zapisuje i odczytuje dane od Cloud Firestore. Przedstawmy więc zestaw narzędzi, których możesz użyć do prototyp i przetestowanie funkcji Cloud Firestore: Firebase Local Emulator Suite Jeśli wypróbowujesz różne modele danych, optymalizowanie reguł zabezpieczeń lub znalezienie najbardziej opłacalnego sposobu umożliwia interakcję z backendem dzięki możliwości pracy lokalnej bez wdrażania usługi na żywo to bardzo dobry pomysł.
Emulator Cloud Firestore jest częścią interfejsu Local Emulator Suite, 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ń).
Aby użyć emulatora Cloud Firestore, wystarczy wykonać kilka czynności:
- Dodajesz wiersz kodu do konfiguracji testowej aplikacji, aby połączyć się z emulatorem.
- Uruchomienie
firebase emulators:start
w katalogu głównym projektu lokalnego. - Wykonywanie wywołań z prototypowego kodu aplikacji za pomocą platformy Cloud Firestore pakietu SDK.
Dostępny jest szczegółowy przewodnik dotyczący elementów Cloud Firestore i Cloud Functions. Warto też zapoznać się z wprowadzeniem do funkcji Local Emulator Suite.
Zainicjuj instancję Cloud Firestore
Zainicjuj instancję maszyny wirtualnej Cloud Firestore:
Web
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 adresem URL Twojej aplikacji internetowej
firebaseConfig
Aby zachować dane, gdy urządzenie utraci połączenie, zapoznaj się z dokumentacją Włączanie danych offline.
Web
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 adresem URL Twojej aplikacji internetowej
firebaseConfig
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 z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet 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 Firebase Admin SDK na swoim serwerze, użyj konta usługi.
Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. 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 z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet 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 uwierzytelniających 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 Firebase Admin SDK na swoim serwerze, użyj konta usługi.
Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. 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 z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet 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 uwierzytelniających 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 Firebase Admin SDK na swoim serwerze, użyj konta usługi.
Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. 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 z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet Admin SDK.-
Zainicjuj dnia Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Zainicjuj dnia 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();
-
Zainicjuj na własnym serwerze
Aby używać pakietu SDK Firebase Admin na własnym serwerze (lub w dowolnym innym środowisku Node.js), użyć konta usługi. Otwórz Uprawnienia i administrator > kont usługi w konsoli Google Cloud. 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 z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet 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 Firebase Admin SDK na swoim serwerze, użyj konta usługi.
Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. 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 tutaj: Biblioteki 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 tutaj: Biblioteki klienta Cloud Firestore.
Ruby
Dodaj dane
Cloud Firestore przechowuje dane w Dokumentach, które są przechowywane w Kolekcjach. Cloud Firestore domyślnie tworzy kolekcje i dokumenty przy pierwszym dodawaniu danych do dokumentu. Nie musisz jednoznacznie tworzyć kolekcje i dokumenty.
Utwórz nową kolekcję i dokument, korzystając z poniższego przykładowego kodu.
Web
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); }
Web
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 tutaj: Biblioteki 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 na pierwszym miejscu.
dokument. Dokumenty w kolekcji mogą zawierać różne zestawy informacji.
Web
// 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); }
Web
// 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 tutaj: Biblioteki 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
Korzystanie z transmisji danych przeglądarki w Konsola Firebase, aby szybko sprawdzić, czy dane zostały dodane do usługi Cloud Firestore.
Możesz też użyć polecenia „get”, aby pobrać całą kolekcję.
Web
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); });
Web
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 tutaj: Biblioteki 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 na platformę internetową, Androida lub platformy Apple, użyj Firebase Uwierzytelnianie Cloud Firestore Security Rules, aby zabezpieczyć swoje dane Cloud Firestore.
Oto kilka podstawowych zestawów reguł, od których możesz zacząć. Możesz modyfikować reguły zabezpieczeń na stronie 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ą albo aplikację na Androida lub iOS w środowisku produkcyjnym, wykonaj też odpowiednie czynności aby mieć pewność, że tylko klienty aplikacji będą miały dostęp do danych w usłudze Cloud Firestore. Zapoznaj się z dokumentacją Sprawdzania aplikacji.
Jeśli używasz jednego z pakietów SDK serwera, skorzystaj z funkcji Identity and Access Management (Uprawnienia) w celu zabezpieczenia danych. w aplikacji Cloud Firestore.
Obejrzyj samouczek wideo
Szczegółowe wskazówki, jak zacząć korzystać z Cloud Firestore , obejrzyj jeden z tych samouczków wideo:
Sieć
iOS+
Android
Więcej filmów znajdziesz w Firebase Kanał w YouTube.
Dalsze kroki
Pogłębiaj swoją wiedzę na następujące tematy:
- Codelabs – dowiedz się, jak korzystać z Cloud Firestore w prawdziwej aplikacji: w programie na Androida, iOS lub Sieć.
- Model danych – dowiedz się, jak dane są w strukturze Cloud Firestore, łącznie z danymi hierarchicznymi i kolekcjami podrzędnymi.
- Dodawanie danych – więcej informacji o tworzeniu i aktualizowaniu danych znajdziesz w Cloud Firestore.
- Pobieranie danych – dowiedz się więcej o tym, jak pobrać dane. i skalowalnych danych.
- Wykonywanie prostych i złożonych zapytań – dowiedz się, jak uruchamiać zapytania proste i złożone.
- Kolejność i ograniczanie zapytań Dowiedz się, jak zamówić kolejność. i ogranicz ilość danych zwracanych przez zapytania.