使用区域端点配置数据本地性

本页介绍了如何配置 Firestore 客户端库以使用区域端点。

使用 Firestore 客户端库时,您可以使用以下任一端点:

  • 全球端点:默认情况下,Firestore 客户端库会将 API 请求发送到 名为firestore.googleapis.com的服务端点全球服务端点 将请求路由到您的数据库在路由过程中,请求可能会通过与数据库位置不同的位置的区域服务端点。

  • 区域端点:区域端点会实施区域限制,确保数据在指定区域中存储和处理。 保证服务端点能够处理应用的 Firestore 请求,请指定区域端点 客户端库中。

设置区域端点

以下示例展示了如何在初始化 Firestore 客户端。设置数据所在位置以外的区域端点 都可能会导致 PermissionDeniedError 错误。

Java

如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证


import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.firestore.Firestore;
import com.google.cloud.firestore.FirestoreOptions;


/**
 * Demonstrate how to set a regional endpoint.
 */
public class RegionalEndpointSnippets {

  /**
   * Create a client with a regional endpoint.
   **/
  public Firestore regionalEndpoint(String projectId, String endpoint) throws Exception {
    FirestoreOptions firestoreOptions =
        FirestoreOptions.newBuilder()
            .setProjectId(projectId)
            .setCredentials(GoogleCredentials.getApplicationDefault())
            // set endpoint like nam5-firestore.googleapis.com:443
            .setHost(endpoint)
            .build();
    Firestore dbWithEndpoint = firestoreOptions.getService();

    return dbWithEndpoint;
  }

}

Python

如需向 Firestore 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证

ENDPOINT = "nam5-firestore.googleapis.com"
client_options = ClientOptions(api_endpoint=ENDPOINT)
db = firestore.Client(client_options=client_options)

cities_query = db.collection("cities").limit(2).get()
for r in cities_query:
    print(r)

区域性端点语义

Firestore 支持区域和多区域位置的区域端点。

请使用以下格式定义区域性端点:

Java

  REGION_NAME-firestore.googleapis.com:443

确保端口号与端点一起定义。

Python

  REGION_NAME-firestore.googleapis.com

Go

  REGION_NAME-firestore.googleapis.com:443

请确保同时定义端口号和端点。

REGION_NAME 替换为单区域或多区域主机名。

主机名的示例如下:

  • eur3-firestore.googleapis.com
  • nam5-firestore.googleapis.com
  • europe-west6-firestore.googleapis.com
  • asia-northeast2-firestore.googleapis.com

如需查看多区域和地区主机名的完整列表,请参阅 Firestore 位置

后续步骤