Questa guida rapida mostra come configurare Cloud Firestore, aggiungere dati, quindi visualizzare i dati appena aggiunti nella console di Firebase.
Crea un database Cloud Firestore
Se non l'hai già fatto, crea un progetto Firebase: nella console Firebase , fai clic su Aggiungi progetto , quindi segui le istruzioni sullo schermo per creare un progetto Firebase o per aggiungere servizi Firebase a un progetto GCP esistente.
Passa alla sezione Cloud Firestore della console Firebase . Ti verrà chiesto di selezionare un progetto Firebase esistente. Segui il flusso di lavoro per la creazione del database.
Seleziona una modalità iniziale per le regole di sicurezza di Cloud Firestore:
- Modalità di prova
Buono per iniziare con le librerie client mobile e web, ma consente a chiunque di leggere e sovrascrivere i tuoi dati. Dopo il test, assicurati di rivedere la sezione Proteggi i tuoi dati .
Per iniziare con il Web, le piattaforme Apple o l'SDK Android, seleziona la modalità test.
- Modalità bloccata
Nega tutte le letture e le scritture da client mobili e web. I tuoi server delle applicazioni autenticati (C#, Go, Java, Node.js, PHP, Python o Ruby) possono comunque accedere al tuo database.
Per iniziare con la libreria client del server C#, Go, Java, Node.js, PHP, Python o Ruby, seleziona la modalità bloccata.
Seleziona una posizione per il tuo database.
Questa impostazione di posizione è la posizione predefinita della risorsa Google Cloud Platform (GCP) del tuo progetto. Tieni presente che questa posizione verrà utilizzata per i servizi GCP nel tuo progetto che richiedono un'impostazione della posizione, in particolare il tuo bucket Cloud Storage predefinito e la tua app App Engine (necessaria se utilizzi Cloud Scheduler).
Se non riesci a selezionare una località, significa che il tuo progetto ha già una località di risorsa GCP predefinita. È stato impostato durante la creazione del progetto o durante l'impostazione di un altro servizio che richiede l'impostazione della posizione.
Fai clic su Fatto .
Quando abiliti Cloud Firestore, viene abilitata anche l'API in Cloud API Manager .
Configura il tuo ambiente di sviluppo
Aggiungi le dipendenze e le librerie client necessarie alla tua app.
Web version 8
- Segui le istruzioni per aggiungere Firebase alla tua app Web .
- Aggiungi le librerie Firebase e Cloud Firestore alla tua app:
<script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-firestore.js"></script>
Cloud Firestore SDK è disponibile anche come pacchetto npm.npm install firebase@8.10.1 --save
Dovrai richiedere manualmente sia Firebase che Cloud Firestore.const firebase = require("firebase"); // Required for side-effects require("firebase/firestore");
Web version 9
- Segui le istruzioni per aggiungere Firebase alla tua app Web .
- L'SDK di Cloud Firestore è disponibile come pacchetto npm.
npm install firebase@9.22.1 --save
Dovrai importare sia Firebase che Cloud Firestore.import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS+
Segui le istruzioni per aggiungere Firebase alla tua app Apple .
Utilizza Swift Package Manager per installare e gestire le dipendenze di Firebase.
- In Xcode, con il progetto dell'app aperto, vai a File > Swift Packages > Add Package Dependency .
- Quando richiesto, aggiungi il repository SDK delle piattaforme Firebase Apple:
- Scegli la libreria Firestore.
- Al termine, Xcode inizierà automaticamente a risolvere e scaricare le tue dipendenze in background.
https://github.com/firebase/firebase-ios-sdk
Kotlin+KTX
- Segui le istruzioni per aggiungere Firebase alla tua app Android .
- Utilizzando Firebase Android BoM , dichiara la dipendenza per la libreria Android di Cloud Firestore nel file Gradle del modulo (a livello di app) (in genere
app/build.gradle
).dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' }
Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Dichiarare le dipendenze della libreria Firebase senza utilizzare la distinta materiali
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.
Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce che tutte le versioni siano compatibili.
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-ktx:24.6.1' }
Java
- Segui le istruzioni per aggiungere Firebase alla tua app Android .
- Utilizzando Firebase Android BoM , dichiara la dipendenza per la libreria Android di Cloud Firestore nel file Gradle del modulo (a livello di app) (in genere
app/build.gradle
).dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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' }
Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Dichiarare le dipendenze della libreria Firebase senza utilizzare la distinta materiali
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.
Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce che tutte le versioni siano compatibili.
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:24.6.1' }
Dart
- Se non l'hai già fatto, configura e inizializza Firebase nella tua app Flutter.
- Dalla radice del tuo progetto Flutter, esegui il seguente comando per installare il plugin:
flutter pub add cloud_firestore
- Una volta completato, ricostruisci la tua applicazione Flutter:
flutter run
- Facoltativo: migliora i tempi di compilazione di iOS e macOS includendo il framework precompilato.
Attualmente, l'SDK di Firestore per iOS dipende dal codice la cui compilazione in Xcode può richiedere fino a 5 minuti. Per ridurre significativamente i tempi di compilazione, puoi utilizzare una versione precompilata aggiungendo questa riga al blocco
target 'Runner' do
nel tuo Podfile:target 'Runner' do pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.15.0' # ... end
Inoltre, assicurati di aver aggiornato CocoaPods alla versione 1.9.1 o successiva:
gem install cocoapods
Per ulteriori informazioni, vedere il problema su GitHub .
Giava
- Aggiungi l'SDK Firebase Admin alla tua app:
- Usando Gradle:
compile 'com.google.firebase:firebase-admin:1.32.0'
- Usando Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>1.32.0</version> </dependency>
- Usando Gradle:
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali appropriate nel tuo ambiente.
Pitone
- Aggiungi l'SDK Firebase Admin alla tua app Python:
pip install --upgrade firebase-admin
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali appropriate nel tuo ambiente.
C++
- Segui le istruzioni per aggiungere Firebase al tuo progetto C++ .
- Interfaccia C++ per Android.
- Dipendenze gradle. Aggiungi quanto segue al file Gradle del tuo modulo (a livello di app) (di solito
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 }
- Dipendenze binarie. Allo stesso modo, il modo consigliato per ottenere le dipendenze binarie è aggiungere quanto segue al file
CMakeLists.txt
: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}")
- Per configurare l'integrazione desktop , consulta Aggiungere Firebase al tuo progetto C++ .
Unità
- Segui le istruzioni per aggiungere Firebase al tuo progetto Unity .
- Interfaccia Unity per Android.
- Selezionare File > Impostazioni di compilazione
- Passa da "Piattaforma" ad "Android" e fai clic su "Cambia piattaforma"
- Fai clic su "Impostazioni giocatore..."
- Nell'interfaccia utente principale di Unity, in "Impostazioni per Android", seleziona "Impostazioni di pubblicazione"
- Nella sezione "Minimizza", modifica le impostazioni di rilascio e debug da "Nessuno" a "ProGuard"
Quando crei per Android, abilita ProGuarding per evitare il limite DEX di Android. Per fare ciò, nell'editor Unity:
Node.js
- Aggiungi l'SDK Firebase Admin alla tua app:
npm install firebase-admin --save
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali appropriate nel tuo ambiente.
Andare
- Aggiungi l'SDK Firebase Admin alla tua app Go:
go get firebase.google.com/go
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali appropriate nel tuo ambiente.
PHP
- Le librerie client del server Cloud Firestore (Java, Node.js, Python, Go, PHP, C# e Ruby) utilizzano le credenziali predefinite dell'applicazione Google per l'autenticazione.
- Per eseguire l'autenticazione dal tuo ambiente di sviluppo, imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
in modo che rimandi a un file della chiave dell'account di servizio JSON. Puoi creare un file chiave nella pagina Credenziali console API .export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Nel tuo ambiente di produzione, non è necessario eseguire l'autenticazione se esegui l'applicazione su App Engine o Compute Engine, utilizzando lo stesso progetto che utilizzi per Cloud Firestore. In caso contrario, crea un account di servizio .
- Per eseguire l'autenticazione dal tuo ambiente di sviluppo, imposta la variabile di ambiente
- Installa e abilita l' estensione gRPC per PHP, che ti servirà per usare la libreria client.
- Aggiungi la libreria PHP di Cloud Firestore alla tua app:
composer require google/cloud-firestore
C#
- Le librerie client del server Cloud Firestore (Java, Node.js, Python, Go, PHP, C# e Ruby) utilizzano le credenziali predefinite dell'applicazione Google per l'autenticazione.
- Per eseguire l'autenticazione dal tuo ambiente di sviluppo, imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
in modo che rimandi a un file della chiave dell'account di servizio JSON. Puoi creare un file chiave nella pagina Credenziali console API .export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Nel tuo ambiente di produzione, non è necessario eseguire l'autenticazione se esegui l'applicazione su App Engine o Compute Engine, utilizzando lo stesso progetto che utilizzi per Cloud Firestore. In caso contrario, crea un account di servizio .
- Per eseguire l'autenticazione dal tuo ambiente di sviluppo, imposta la variabile di ambiente
- Aggiungi la libreria Cloud Firestore C# alla tua app nel file
.csproj
:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
- Aggiungere quanto segue al file
Program.cs
:using Google.Cloud.Firestore;
Rubino
- Le librerie client del server Cloud Firestore (Java, Node.js, Python, Go, PHP, C# e Ruby) utilizzano le credenziali predefinite dell'applicazione Google per l'autenticazione.
- Per eseguire l'autenticazione dal tuo ambiente di sviluppo, imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
in modo che rimandi a un file della chiave dell'account di servizio JSON. Puoi creare un file chiave nella pagina Credenziali console API .export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Nel tuo ambiente di produzione, non è necessario eseguire l'autenticazione se esegui l'applicazione su App Engine o Compute Engine, utilizzando lo stesso progetto che utilizzi per Cloud Firestore. In caso contrario, crea un account di servizio .
- Per eseguire l'autenticazione dal tuo ambiente di sviluppo, imposta la variabile di ambiente
- Aggiungi la libreria Cloud Firestore Ruby alla tua app nel tuo
Gemfile
:gem "google-cloud-firestore"
- Installa le dipendenze dal tuo
Gemfile
usando:bundle install
(Facoltativo) Prototipazione e test con Firebase Local Emulator Suite
Per gli sviluppatori di dispositivi mobili, prima di parlare di come la tua app scrive e legge da Cloud Firestore, introduciamo una serie di strumenti che puoi utilizzare per prototipare e testare la funzionalità di Cloud Firestore: Firebase Local Emulator Suite. Se stai provando diversi modelli di dati, ottimizzando le tue regole di sicurezza o lavorando per trovare il modo più conveniente per interagire con il back-end, essere in grado di lavorare localmente senza distribuire servizi live può essere un'ottima idea.
Un emulatore Cloud Firestore fa parte della Local Emulator Suite, che consente alla tua app di interagire con il contenuto e la configurazione del database emulato, nonché facoltativamente con le risorse del progetto emulato (funzioni, altri database e regole di sicurezza).
L'utilizzo dell'emulatore Cloud Firestore richiede solo pochi passaggi:
- Aggiunta di una riga di codice alla configurazione di test dell'app per connettersi all'emulatore.
- Dalla radice della directory del progetto locale, eseguendo
firebase emulators:start
. - Effettuare chiamate dal codice del prototipo della tua app utilizzando un SDK della piattaforma Cloud Firestore come di consueto.
È disponibile una procedura dettagliata che coinvolge Cloud Firestore e Cloud Functions . Dovresti anche dare un'occhiata all'introduzione di Local Emulator Suite .
Inizializza Cloud Firestore
Inizializza un'istanza di Cloud Firestore:
Web version 9
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);
Sostituisci FIREBASE_CONFIGURATION con firebaseConfig
della tua app web.
Per rendere persistenti i dati quando il dispositivo perde la connessione, consulta la documentazione relativa all'abilitazione dei dati offline .
Web version 8
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();
Sostituisci FIREBASE_CONFIGURATION con firebaseConfig
della tua app web.
Per rendere persistenti i dati quando il dispositivo perde la connessione, consulta la documentazione relativa all'abilitazione dei dati offline .
Rapido
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
Obiettivo-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;
Giava
L'SDK di Cloud Firestore viene inizializzato in modi diversi a seconda del tuo ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare 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();
Per utilizzare l'SDK Firebase Admin sul tuo server, utilizza un account di servizio .
Vai a IAM e amministrazione > Account di servizio nella console di Google Cloud. Genera una nuova chiave privata e salva il file JSON. Quindi utilizzare il file per inizializzare l'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();
Pitone
L'SDK di Cloud Firestore viene inizializzato in modi diversi a seconda del tuo ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare Admin SDK .import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Per inizializzare l'SDK è anche possibile utilizzare una credenziale predefinita dell'applicazione esistente.
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()
Per utilizzare l'SDK Firebase Admin sul tuo server, utilizza un account di servizio .
Vai a IAM e amministrazione > Account di servizio nella console di Google Cloud. Genera una nuova chiave privata e salva il file JSON. Quindi utilizzare il file per inizializzare l'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
L'SDK di Cloud Firestore viene inizializzato in modi diversi a seconda del tuo ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare 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()
Per inizializzare l'SDK è anche possibile utilizzare una credenziale predefinita dell'applicazione esistente.
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()
Per utilizzare l'SDK Firebase Admin sul tuo server, utilizza un account di servizio .
Vai a IAM e amministrazione > Account di servizio nella console di Google Cloud. Genera una nuova chiave privata e salva il file JSON. Quindi utilizzare il file per inizializzare l'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
L'SDK di Cloud Firestore viene inizializzato in modi diversi a seconda del tuo ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare Admin SDK .- Inizializza su Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
- Inizializza su Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
- Inizializza sul tuo server
Per utilizzare l'SDK Firebase Admin sul tuo server (o qualsiasi altro ambiente Node.js), utilizza un account di servizio . Vai a IAM e amministrazione > Account di servizio nella console di Google Cloud. Genera una nuova chiave privata e salva il file JSON. Quindi utilizzare il file per inizializzare l'SDK:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Andare
L'SDK di Cloud Firestore viene inizializzato in modi diversi a seconda del tuo ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare 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()
Per utilizzare l'SDK Firebase Admin sul tuo server, utilizza un account di servizio .
Vai a IAM e amministrazione > Account di servizio nella console di Google Cloud. Genera una nuova chiave privata e salva il file JSON. Quindi utilizzare il file per inizializzare l'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
Per ulteriori informazioni sull'installazione e la creazione di un client Cloud Firestore, fai riferimento a Librerie client Cloud Firestore .
Unità
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
C#
C#
Per ulteriori informazioni sull'installazione e la creazione di un client Cloud Firestore, fai riferimento a Librerie client Cloud Firestore .
Rubino
Aggiungi dati
Cloud Firestore memorizza i dati in Documenti, che sono archiviati in Raccolte. Cloud Firestore crea raccolte e documenti implicitamente la prima volta che aggiungi dati al documento. Non è necessario creare in modo esplicito raccolte o documenti.
Crea una nuova raccolta e un documento usando il seguente codice di esempio.
Web version 9
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 version 8
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); });
Rapido
// Add a new document with a generated ID var ref: DocumentReference? = nil ref = db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
Obiettivo-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}'));
Giava
Pitone
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
Andare
PHP
PHP
Per ulteriori informazioni sull'installazione e la creazione di un client Cloud Firestore, fai riferimento a Librerie client Cloud Firestore .
Unità
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#
Rubino
Ora aggiungi un altro documento alla raccolta users
. Si noti che questo documento include una coppia chiave-valore (secondo nome) che non compare nel primo documento. I documenti in una raccolta possono contenere diverse serie di informazioni.
Web version 9
// 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 version 8
// 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); });
Rapido
// Add a second document with a generated ID. ref = db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
Obiettivo-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}'));
Giava
Pitone
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
Andare
PHP
PHP
Per ulteriori informazioni sull'installazione e la creazione di un client Cloud Firestore, fai riferimento a Librerie client Cloud Firestore .
Unità
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#
Rubino
Leggere i dati
Utilizza il visualizzatore di dati nella console di Firebase per verificare rapidamente di aver aggiunto dati a Cloud Firestore.
Puoi anche utilizzare il metodo "get" per recuperare l'intera raccolta.
Web version 9
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); });
Web version 8
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
Rapido
db.collection("users").getDocuments() { (querySnapshot, err) in if let err = err { print("Error getting documents: \(err)") } else { for document in querySnapshot!.documents { print("\(document.documentID) => \(document.data())") } } }
Obiettivo-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()}"); } });
Giava
Pitone
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
Andare
PHP
PHP
Per ulteriori informazioni sull'installazione e la creazione di un client Cloud Firestore, fai riferimento a Librerie client Cloud Firestore .
Unità
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#
Rubino
Proteggi i tuoi dati
Se utilizzi l'SDK per piattaforme Web, Android o Apple, utilizza l'autenticazione Firebase e le regole di sicurezza di Cloud Firestore per proteggere i tuoi dati in Cloud Firestore.
Ecco alcuni set di regole di base che puoi utilizzare per iniziare. Puoi modificare le regole di sicurezza nella scheda Regole della console.
Autenticazione richiesta
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
Modalità bloccata
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Modalità di prova
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Prima di distribuire la tua app Web, Android o iOS in produzione, adotta anche delle misure per assicurarti che solo i tuoi client dell'app possano accedere ai dati di Cloud Firestore. Consulta la documentazione di App Check .
Se utilizzi uno degli SDK del server, utilizza Identity and Access Management (IAM) per proteggere i tuoi dati in Cloud Firestore.
Guarda un videotutorial
Per indicazioni dettagliate su come iniziare a utilizzare le librerie client per dispositivi mobili di Cloud Firestore, guarda uno dei seguenti tutorial video:
ragnatela
iOS+
Androide
Puoi trovare altri video nel canale YouTube di Firebase .
Prossimi passi
Approfondisci le tue conoscenze con i seguenti argomenti:
- Codelab : impara a utilizzare Cloud Firestore in un'app reale seguendo il codelab per Android , iOS o Web .
- Modello di dati : scopri di più su come sono strutturati i dati in Cloud Firestore, inclusi i dati gerarchici e le sottoraccolte.
- Aggiungi dati : scopri di più sulla creazione e l'aggiornamento dei dati in Cloud Firestore.
- Ottieni dati : ulteriori informazioni su come recuperare i dati.
- Esegui query semplici e composte : scopri come eseguire query semplici e composte.
- Ordina e limita le query Scopri come ordinare e limitare i dati restituiti dalle tue query.