Z tego krótkiego wprowadzenia dowiesz się, jak skonfigurować 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 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
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 reguł zabezpieczeń Cloud Firestore będzie stosowany do reguł domyślnych Baza danych Cloud Firestore. Jeśli w projekcie tworzysz wiele baz danych, możesz wdrożyć reguły zabezpieczeń Cloud Firestore dla każdej bazy 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 Zasobnik Cloud Storage aplikacji 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, interfejs API zostanie też włączony 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:
<script src="https://www.gstatic.com/firebasejs/10.12.4/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.12.4/firebase-firestore-compat.js"></script>
Pakiet SDK Cloud Firestore jest też dostępny jako pakiet npm.npm install firebase@10.12.4 --save
Musisz ręcznie wymagać zarówno Firebase, jak i Cloud Firestore.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.
npm install firebase@10.12.4 --save
Musisz zaimportować zarówno Firebase, jak i Cloud Firestore.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 na Androida w
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.1.2")) // 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 BM
Jeśli nie chcesz używać Firebase BoM, musisz określić każdy Wersja biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli używasz wielu bibliotek Firebase w aplikacji, zalecamy zarządzanie biblioteką za pomocą 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.0.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ąć w ciągu 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ższa:
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, wykonaj te instrukcje: 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, wykonaj te instrukcje: 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, wykonaj te instrukcje: 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, wykonaj te instrukcje: za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
PHP
-
Używane są biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby)
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 przy użyciu 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#
-
Używane są biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby)
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 przy użyciu 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 informacje:using Google.Cloud.Firestore;
Ruby
-
Używane są biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby)
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 przy użyciu 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 w Pakiecie emulatorów lokalnych Firebase
Dla deweloperów aplikacji mobilnych: zanim zaczniesz rozmawiać o tym, jak aplikacja zapisuje i odczytuje dane z Cloud Firestore, omówimy zestaw narzędzi, Stworzenie prototypu i przetestowania funkcji Cloud Firestore: Pakiet emulatorów lokalnych Firebase. 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ą Pakietu emulatorów lokalnych, 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 Cloud Firestore i Cloud Functions. Zapoznaj się też z wprowadzeniem do Pakietu emulatorów lokalnych.
Zainicjuj Cloud Firestore
Zainicjuj instancję 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.
Szybkie
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 SDK 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 SDK 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 SDK 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 SDK 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.-
Inicjowanie w Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Inicjowanie 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();
-
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 SDK 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 w dokumentacji, 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 w dokumentacji, 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 ani 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 w dokumentacji, 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 w dokumentacji, 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 konsoli Firebase, aby szybko sprawdzić, czy dane zostały dodane do 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 w dokumentacji, 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 Reguły zabezpieczeń Cloud Firestore dotyczące zabezpieczenia danych i 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 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 Cloud Firestore.
Obejrzyj samouczek wideo
Szczegółowe wskazówki dotyczące rozpoczynania pracy 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:
- Ćwiczenia z programowania – dowiedz się, jak korzystać z Cloud Firestore w rzeczywistej aplikacji: w programie na Androidzie, iOS lub Sieć.
- Model danych – dowiedz się, jak dane są uporządkowanych w Cloud Firestore, w tym danych hierarchicznych i kolekcji podrzędnych.
- Dodawanie danych – dowiedz się więcej o tworzeniu i aktualizowaniu danych 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ść zapytań i ich limit Dowiedz się, jak zamówić kolejność. i ogranicz ilość danych zwracanych przez zapytania.