В этом кратком руководстве показано, как настроить Cloud Firestore , добавить данные, а затем использовать либо основные операции, либо операции Pipeline для запроса только что добавленных данных в консоли Firebase с помощью клиентских библиотек для Java, Node.js и Python.
Используйте эти клиентские библиотеки для настройки привилегированных серверных сред с полным доступом к вашей базе данных.
Создайте базу данных Cloud Firestore
Если вы еще этого не сделали, создайте проект Firebase: в консоли Firebase нажмите «Добавить проект» , а затем следуйте инструкциям на экране, чтобы создать проект Firebase или добавить сервисы Firebase в существующий проект Google Cloud .
Откройте свой проект в консоли Firebase . В левой панели разверните раздел «Сборка» , а затем выберите базу данных Firestore .
Нажмите «Создать базу данных» .
Выберите режим базы данных «Предприятие» .
Выберите режим работы Firestore in Native Mode , который поддерживает операции Core и Pipeline.
Выберите местоположение для вашей базы данных.
Выберите режим запуска Cloud Firestore Security Rules :
- Тестовый режим
Подходит для начала работы с библиотеками мобильного и веб-клиента, но позволяет любому читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом «Защита данных» .
Для начала работы с веб-версией, платформами Apple или Android SDK выберите тестовый режим.
- Режим производства
Запрещает все операции чтения и записи с мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений (Node.js, Python, Java) по-прежнему смогут получать доступ к вашей базе данных.
Первоначальный набор Cloud Firestore Security Rules будет применяться к вашей базе данных Cloud Firestore по умолчанию. Если вы создадите несколько баз данных для своего проекта, вы можете развернуть Cloud Firestore Security Rules для каждой из них.
Нажмите «Создать» .
При включении Cloud Firestore также активируется API в Cloud API Manager .
Настройте среду разработки.
Добавьте необходимые зависимости и клиентские библиотеки в ваше приложение.
Node.js
- Добавьте Firebase Admin SDK в своё приложение:
npm install firebase-admin --save
- Следуйте приведенным ниже инструкциям, чтобы инициализировать Cloud Firestore с использованием соответствующих учетных данных в вашей среде.
Python
- Добавьте Firebase Admin SDK в ваше приложение на Python:
pip install --upgrade firebase-admin
- Следуйте приведенным ниже инструкциям, чтобы инициализировать Cloud Firestore с использованием соответствующих учетных данных в вашей среде.
Java
- Добавьте Firebase Admin SDK в своё приложение:
- Использование Gradle:
implementation 'com.google.firebase:firebase-admin:9.7.1'
- Использование Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.1</version> </dependency>
- Использование Gradle:
- Следуйте приведенным ниже инструкциям, чтобы инициализировать Cloud Firestore с использованием соответствующих учетных данных в вашей среде.
Инициализация Cloud Firestore
Инициализируйте экземпляр Cloud Firestore :
Node.js
Инициализация Cloud Firestore SDK осуществляется различными способами в зависимости от вашей среды. Ниже приведены наиболее распространенные методы. Для получения полной информации см. раздел «Инициализация Admin SDK» .- Инициализация в Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
- Инициализация в 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();
- Инициализируйте на собственном сервере.
Чтобы использовать Firebase Admin SDK на собственном сервере (или в любой другой среде Node.js), используйте сервисную учетную запись . Перейдите в раздел IAM и администрирование > Сервисные учетные записи в консоли Google Cloud. Сгенерируйте новый закрытый ключ и сохраните JSON-файл. Затем используйте этот файл для инициализации 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();
Python
Инициализация Cloud Firestore SDK осуществляется различными способами в зависимости от вашей среды. Ниже приведены наиболее распространенные методы. Для получения полной информации см. раздел «Инициализация Admin SDK» .import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Для инициализации SDK также можно использовать существующие учетные данные приложения по умолчанию.
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()
Для использования Firebase Admin SDK на собственном сервере используйте учетную запись службы .
В консоли Google Cloud перейдите в раздел IAM и администрирование > Сервисные учетные записи . Сгенерируйте новый закрытый ключ и сохраните JSON-файл. Затем используйте этот файл для инициализации 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()
Java
Инициализация Cloud Firestore SDK осуществляется различными способами в зависимости от вашей среды. Ниже приведены наиболее распространенные методы. Для получения полной информации см. раздел «Инициализация 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();
Для использования Firebase Admin SDK на собственном сервере используйте учетную запись службы .
В консоли Google Cloud перейдите в раздел IAM и администрирование > Сервисные учетные записи . Сгенерируйте новый закрытый ключ и сохраните JSON-файл. Затем используйте этот файл для инициализации 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();
Добавление данных с использованием основных операций.
Чтобы изучить основные операции и операции конвейера для запроса данных, добавьте данные в свою базу данных, используя основные операции.
Cloud Firestore хранит данные в документах, которые хранятся в коллекциях. Cloud Firestore создает коллекции и документы автоматически при первом добавлении данных в документ. Вам не нужно явно создавать коллекции или документы.
Создайте новую коллекцию и документ, используя следующий пример кода.
Node.js
Java
Python
Чтение данных с использованием основных операций.
Воспользуйтесь средством просмотра данных в консоли Firebase , чтобы быстро убедиться, что вы добавили данные в Cloud Firestore .
Также можно использовать метод `get` для получения всей коллекции целиком.
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
Чтение данных с использованием операций конвейера.
Теперь вы можете сравнить удобство выполнения запросов в Pipeline с удобством выполнения запросов в Core.
Node.js
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Python
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
Java
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
Следующие шаги
Углубите свои знания в области основных и трубопроводных операций, изучив следующие темы:
- Убедитесь, что вы знакомы с различиями между основными и конвейерными операциями.
- Узнайте больше о запросах с использованием основных операций.
- Узнайте больше о выполнении запросов с использованием операций Pipeline .
В этом кратком руководстве показано, как настроить Cloud Firestore , добавить данные, а затем использовать либо основные операции, либо операции Pipeline для запроса только что добавленных данных в консоли Firebase с помощью клиентских библиотек для Java, Node.js и Python.
Используйте эти клиентские библиотеки для настройки привилегированных серверных сред с полным доступом к вашей базе данных.
Создайте базу данных Cloud Firestore
Если вы еще этого не сделали, создайте проект Firebase: в консоли Firebase нажмите «Добавить проект» , а затем следуйте инструкциям на экране, чтобы создать проект Firebase или добавить сервисы Firebase в существующий проект Google Cloud .
Откройте свой проект в консоли Firebase . В левой панели разверните раздел «Сборка» , а затем выберите базу данных Firestore .
Нажмите «Создать базу данных» .
Выберите режим базы данных «Предприятие» .
Выберите режим работы Firestore in Native Mode , который поддерживает операции Core и Pipeline.
Выберите местоположение для вашей базы данных.
Выберите режим запуска Cloud Firestore Security Rules :
- Тестовый режим
Подходит для начала работы с библиотеками мобильного и веб-клиента, но позволяет любому читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом «Защита данных» .
Для начала работы с веб-версией, платформами Apple или Android SDK выберите тестовый режим.
- Режим производства
Запрещает все операции чтения и записи с мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений (Node.js, Python, Java) по-прежнему смогут получать доступ к вашей базе данных.
Первоначальный набор Cloud Firestore Security Rules будет применяться к вашей базе данных Cloud Firestore по умолчанию. Если вы создадите несколько баз данных для своего проекта, вы можете развернуть Cloud Firestore Security Rules для каждой из них.
Нажмите «Создать» .
При включении Cloud Firestore также активируется API в Cloud API Manager .
Настройте среду разработки.
Добавьте необходимые зависимости и клиентские библиотеки в ваше приложение.
Node.js
- Добавьте Firebase Admin SDK в своё приложение:
npm install firebase-admin --save
- Следуйте приведенным ниже инструкциям, чтобы инициализировать Cloud Firestore с использованием соответствующих учетных данных в вашей среде.
Python
- Добавьте Firebase Admin SDK в ваше приложение на Python:
pip install --upgrade firebase-admin
- Следуйте приведенным ниже инструкциям, чтобы инициализировать Cloud Firestore с использованием соответствующих учетных данных в вашей среде.
Java
- Добавьте Firebase Admin SDK в своё приложение:
- Использование Gradle:
implementation 'com.google.firebase:firebase-admin:9.7.1'
- Использование Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.1</version> </dependency>
- Использование Gradle:
- Следуйте приведенным ниже инструкциям, чтобы инициализировать Cloud Firestore с использованием соответствующих учетных данных в вашей среде.
Инициализация Cloud Firestore
Инициализируйте экземпляр Cloud Firestore :
Node.js
Инициализация Cloud Firestore SDK осуществляется различными способами в зависимости от вашей среды. Ниже приведены наиболее распространенные методы. Для получения полной информации см. раздел «Инициализация Admin SDK» .- Инициализация в Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
- Инициализация в 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();
- Инициализируйте на собственном сервере.
Чтобы использовать Firebase Admin SDK на собственном сервере (или в любой другой среде Node.js), используйте сервисную учетную запись . Перейдите в раздел IAM и администрирование > Сервисные учетные записи в консоли Google Cloud. Сгенерируйте новый закрытый ключ и сохраните JSON-файл. Затем используйте этот файл для инициализации 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();
Python
Инициализация Cloud Firestore SDK осуществляется различными способами в зависимости от вашей среды. Ниже приведены наиболее распространенные методы. Для получения полной информации см. раздел «Инициализация Admin SDK» .import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Для инициализации SDK также можно использовать существующие учетные данные приложения по умолчанию.
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()
Для использования Firebase Admin SDK на собственном сервере используйте учетную запись службы .
В консоли Google Cloud перейдите в раздел IAM и администрирование > Сервисные учетные записи . Сгенерируйте новый закрытый ключ и сохраните JSON-файл. Затем используйте этот файл для инициализации 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()
Java
Инициализация Cloud Firestore SDK осуществляется различными способами в зависимости от вашей среды. Ниже приведены наиболее распространенные методы. Для получения полной информации см. раздел «Инициализация 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();
Для использования Firebase Admin SDK на собственном сервере используйте учетную запись службы .
В консоли Google Cloud перейдите в раздел IAM и администрирование > Сервисные учетные записи . Сгенерируйте новый закрытый ключ и сохраните JSON-файл. Затем используйте этот файл для инициализации 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();
Добавление данных с использованием основных операций.
Чтобы изучить основные операции и операции конвейера для запроса данных, добавьте данные в свою базу данных, используя основные операции.
Cloud Firestore хранит данные в документах, которые хранятся в коллекциях. Cloud Firestore создает коллекции и документы автоматически при первом добавлении данных в документ. Вам не нужно создавать коллекции или документы явным образом.
Создайте новую коллекцию и документ, используя следующий пример кода.
Node.js
Java
Python
Чтение данных с использованием основных операций.
Воспользуйтесь средством просмотра данных в консоли Firebase , чтобы быстро убедиться, что вы добавили данные в Cloud Firestore .
Также можно использовать метод `get` для получения всей коллекции целиком.
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
Чтение данных с использованием операций конвейера.
Теперь вы можете сравнить удобство выполнения запросов в Pipeline с удобством выполнения запросов в Core.
Node.js
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Python
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
Java
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
Следующие шаги
Углубите свои знания в области основных и трубопроводных операций, изучив следующие темы:
- Убедитесь, что вы знакомы с различиями между основными и конвейерными операциями.
- Узнайте больше о запросах с использованием основных операций.
- Узнайте больше о выполнении запросов с использованием операций Pipeline .