Получайте данные с помощью Cloud Firestore

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Есть три способа получить данные, хранящиеся в Cloud Firestore . Любой из этих методов можно использовать с документами, коллекциями документов или результатами запросов:

Когда вы устанавливаете прослушиватель, Cloud Firestore отправляет ему первоначальный снимок данных, а затем еще один снимок при каждом изменении документа.

Примечание. Хотя примеры кода охватывают несколько языков, текст, объясняющий примеры, относится к именам веб-методов.

Прежде чем начать

См. раздел Начало работы с Cloud Firestore , чтобы создать базу данных Cloud Firestore .

Инициализировать Cloud Firestore

Инициализируйте экземпляр 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); 

Замените FIREBASE_CONFIGURATION на firebaseConfig вашего веб-приложения.

Чтобы сохранить данные, когда устройство теряет соединение, см. документацию «Включение автономных данных» .

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(); 

Замените FIREBASE_CONFIGURATION на firebaseConfig вашего веб-приложения.

Чтобы сохранить данные, когда устройство теряет соединение, см. документацию по включению автономных данных .

Быстрый
Примечание. Этот продукт недоступен для целевых устройств watchOS и App Clip.
import FirebaseCore import FirebaseFirestore
Цель-C
Примечание. Этот продукт недоступен для целевых устройств watchOS и App Clip.
@import FirebaseCore; @import FirebaseFirestore; // Use Firebase library to configure APIs [FIRApp configure];

Kotlin+KTX

// Access a Cloud Firestore instance from your Activity

Java

// Access a Cloud Firestore instance from your Activity

Dart

db = FirebaseFirestore.instance;
Ява
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();
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();
Питон
Существующие учетные данные приложения по умолчанию также можно использовать для инициализации SDK.

Python

Существующие учетные данные приложения по умолчанию также можно использовать для инициализации SDK.
С++
Node.js
const < initializeApp, applicationDefault, cert >= require('firebase-admin/app'); const < getFirestore, Timestamp, FieldValue, Filter >= require('firebase-admin/firestore');
const < initializeApp, applicationDefault, cert >= require('firebase-admin/app'); const < getFirestore, Timestamp, FieldValue, Filter >= require('firebase-admin/firestore');
const < initializeApp, applicationDefault, cert >= require('firebase-admin/app'); const < getFirestore, Timestamp, FieldValue, Filter >= require('firebase-admin/firestore');
Идти
import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config 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()

Чтобы использовать Firebase Admin SDK на своем сервере, используйте сервисную учетную запись .

Откройте IAM и администрирование > Сервисные учетные записи в консоли Google Cloud. Создайте новый закрытый ключ и сохраните файл JSON. Затем используйте файл для инициализации 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

Дополнительную информацию об установке и создании клиента Cloud Firestore см. в разделе Клиентские библиотеки Cloud Firestore .

Единство
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
С#

С#

Дополнительную информацию об установке и создании клиента Cloud Firestore см. в разделе Клиентские библиотеки Cloud Firestore .

Руби

Пример данных

Для начала запишите некоторые данные о городах, чтобы мы могли рассмотреть различные способы их считывания:

Web

Узнайте больше о модульном веб-API, поддерживающем древовидную структуру, и обновите API с пространством имен.

Web

Узнайте больше о модульном веб-API, поддерживающем древовидную структуру, и обновите API с пространством имен.

Быстрый
Примечание. Этот продукт недоступен для целевых устройств watchOS и App Clip.
Цель-C
Примечание. Этот продукт недоступен для целевых устройств watchOS и App Clip.

Kotlin+KTX

Java

Dart

Ява
Питон
class City: def __init__(self, name, state, country, capital=False, population=0, regions=[]): self.name = name self.state = state self.country = country self.capital = capital self.population = population self.regions = regions @staticmethod def from_dict(source): # . def to_dict(self): # . def __repr__(self): return f"City(\ name=, \ country=, \ population=, \ capital=, \ regions=\ )"

Python

С++
Node.js
Идти
PHP

PHP

Дополнительную информацию об установке и создании клиента Cloud Firestore см. в разделе Клиентские библиотеки Cloud Firestore .

Единство
CollectionReference citiesRef = db.Collection("cities"); citiesRef.Document("SF").SetAsync(new Dictionary()< < "Name", "San Francisco" >, < "State", "CA" >, < "Country", "USA" >, < "Capital", false >, < "Population", 860000 >>).ContinueWithOnMainThread(task => citiesRef.Document("LA").SetAsync(new Dictionary()< < "Name", "Los Angeles" >, < "State", "CA" >, < "Country", "USA" >, < "Capital", false >, < "Population", 3900000 >>) ).ContinueWithOnMainThread(task => citiesRef.Document("DC").SetAsync(new Dictionary()< < "Name", "Washington D.C." >, < "State", null >, < "Country", "USA" >, < "Capital", true >, < "Population", 680000 >>) ).ContinueWithOnMainThread(task => citiesRef.Document("TOK").SetAsync(new Dictionary()< < "Name", "Tokyo" >, < "State", null >, < "Country", "Japan" >, < "Capital", true >, < "Population", 9000000 >>) ).ContinueWithOnMainThread(task => citiesRef.Document("BJ").SetAsync(new Dictionary()< < "Name", "Beijing" >, < "State", null >, < "Country", "China" >, < "Capital", true >, < "Population", 21500000 >>) );
С#
Руби

Получить документ

В следующем примере показано, как получить содержимое одного документа с помощью get() :

Web

Узнайте больше о модульном веб-API, поддерживающем древовидную структуру, и обновите API с пространством имен.

Web

Узнайте больше о модульном веб-API, поддерживающем древовидную структуру, и обновите API с пространством имен.