使用服务器客户端库创建 Firestore 数据库
本快速入门介绍如何使用 C#、Go、Java、Node.js、PHP、Python 或 Ruby 服务器客户端库设置 Firestore、添加数据和读取数据。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
在原生模式数据库下创建 Firestore
如果是全新项目,您需要创建一个 Firestore 数据库实例。
从选择数据库服务屏幕中,选择“原生模式下的 Firestore”。
选择 Firestore 的位置。
如果您无法选择位置,则表明项目的“默认 Google Cloud 资源位置”已经设置。您的项目的部分资源(例如默认 Firestore 实例)共享一个通用位置依赖项,并且可以在项目创建期间或设置共享此位置依赖项的其他服务时设置其位置。
点击创建数据库。
您在创建 Firestore 项目时,也会在 Cloud API Manager 中启用 API。
设置身份验证
要运行客户端库,您必须先创建服务账号并设置环境变量,以设置身份验证。
Provide authentication credentials to your application code by setting the
environment variable GOOGLE_APPLICATION_CREDENTIALS
. This
variable applies only to your current shell session. If you want the variable
to apply to future shell sessions, set the variable in your shell startup file,
for example in the ~/.bashrc
or ~/.profile
file.
Linux 或 macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
For PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
For command prompt:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
将服务器客户端库添加到您的应用中
将所需的依赖项和客户端库添加到您的应用。
Java
将 Firestore Java 库添加到您的应用中:
-
使用 Maven:
<dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.51.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-firestore</artifactId> </dependency>
- 如果您使用的是 Gradle 或在不使用 BOM 的情况下进行设置,请参阅 Firestore Java 版客户端的 README。
- 使用 IDE:
如果您使用的是 VS Code、IntelliJ 或 Eclipse,则可使用以下 IDE 插件将客户端库添加到您的项目中:
上述插件还提供其他功能,例如服务账号密钥管理。如需了解详情,请参阅各个插件相应的文档。
Python
将 Firestore Python 库添加到您的应用中:
pip install --upgrade google-cloud-firestore
Node.js
将 Firestore Node.js 库添加到您的应用中:
npm install --save @google-cloud/firestore
Go
安装 Firestore Go 库:
go get cloud.google.com/go/firestore
将 Firestore Go 库添加到您的应用中:
import "cloud.google.com/go/firestore"
PHP
- 安装并启用 PHP 版 gRPC 扩展程序(您在使用客户端库时需要用到它)。
- 将 Firestore PHP 库添加到您的应用中:
composer require google/cloud-firestore
C#
- 在您的
.csproj
文件中,将 Firestore C# 库添加到您的应用中:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
- 将以下内容添加到
Program.cs
文件:using Google.Cloud.Firestore;
Ruby
- 在您的
Gemfile
中,将 Firestore Ruby 库添加到您的应用中:gem "google-cloud-firestore"
- 使用以下命令从
Gemfile
安装依赖项:bundle install
初始化 Firestore
初始化 Firestore 的实例:
Java
import com.google.cloud.firestore.Firestore; import com.google.cloud.firestore.FirestoreOptions;
FirestoreOptions firestoreOptions = FirestoreOptions.getDefaultInstance().toBuilder() .setProjectId(projectId) .setCredentials(GoogleCredentials.getApplicationDefault()) .build(); Firestore db = firestoreOptions.getService();
Python
from google.cloud import firestore # The `project` parameter is optional and represents which project the client # will act on behalf of. If not supplied, the client falls back to the default # project inferred from the environment. db = firestore.Client(project="my-project-id")
Python
(异步)
from google.cloud import firestore # The `project` parameter is optional and represents which project the client # will act on behalf of. If not supplied, the client falls back to the default # project inferred from the environment. db = firestore.AsyncClient(project="my-project-id")
Node.js
const Firestore = require('@google-cloud/firestore'); const db = new Firestore({ projectId: 'YOUR_PROJECT_ID', keyFilename: '/path/to/keyfile.json', });
Go
import ( "context" "flag" "fmt" "log" "google.golang.org/api/iterator" "cloud.google.com/go/firestore" ) func createClient(ctx context.Context) *firestore.Client { // Sets your Google Cloud Platform project ID. projectID := "YOUR_PROJECT_ID" client, err := firestore.NewClient(ctx, projectID) if err != nil { log.Fatalf("Failed to create client: %v", err) } // Close client when done with // defer client.Close() return client }
PHP
use Google\Cloud\Firestore\FirestoreClient; /** * Initialize Cloud Firestore with default project ID. */ function setup_client_create(string $projectId = null) { // Create the Cloud Firestore client if (empty($projectId)) { // The `projectId` parameter is optional and represents which project the // client will act on behalf of. If not supplied, the client falls back to // the default project inferred from the environment. $db = new FirestoreClient(); printf('Created Cloud Firestore client with default project ID.' . PHP_EOL); } else { $db = new FirestoreClient([ 'projectId' => $projectId, ]); printf('Created Cloud Firestore client with project ID: %s' . PHP_EOL, $projectId); } }
C#
Ruby
require "google/cloud/firestore" # The `project_id` parameter is optional and represents which project the # client will act on behalf of. If not supplied, the client falls back to the # default project inferred from the environment. firestore = Google::Cloud::Firestore.new project_id: project_id puts "Created Cloud Firestore client with given project ID."
添加数据
Firestore 将数据存储在文档中,而文档存储在集合中。在您首次向文档添加数据时,Firestore 就会隐式创建集合和文档。您不需要显式创建集合或文档。
使用以下示例代码创建一个新集合和一个新文档。
Java
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
(Async)
Node.js
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
现在,将另一个文档添加到 users
集合中。请注意,此文档包含第一个文档中没有的一个键值对(中间名)。集合中的文档可以包含不同的信息集。
Java
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
(Async)
Node.js
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
读取数据
如需快速验证您已将数据添加到 Firestore,请使用 Firebase 控制台中的数据查看器。
您还可以使用 get
方法来检索整个集合。
Java
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
(Async)
Node.js
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
后续步骤
通过以下各主题深入了解相关知识:
- 数据模型 - 详细了解 Firestore 中数据的结构组织形式,包括分层数据和子集合。
- 添加数据 - 详细了解如何在 Firestore 中创建和更新数据。
- 获取数据 - 详细了解如何检索数据。
- 执行简单查询和复合查询 - 了解如何运行简单查询和复合查询。
- 对查询结果进行排序和限制其数量 - 了解如何对查询返回的数据进行排序和限制其数量。