Stay organized with collections
Save and categorize content based on your preferences.
Creates the specified index. A newly created index's initial state is CREATING. On completion of the returned google.longrunning.Operation, the state will be READY. If the index already exists, the call will return an ALREADY_EXISTS status.
During creation, the process could result in an error, in which case the index will move to the ERROR state. The process can be recovered by fixing the data that caused the error, removing the index with delete, then re-creating the index with create.
Indexes with a single field cannot be created.
HTTP request
POST https://firestore.googleapis.com/v1beta1/{parent=projects/*/databases/*}/indexes
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-01-21 UTC."],[],[],null,["# Method: projects.databases.indexes.create\n\nCreates the specified index. A newly created index's initial state is `CREATING`. On completion of the returned [google.longrunning.Operation](/docs/firestore/reference/rest/Shared.Types/Operation), the state will be `READY`. If the index already exists, the call will return an `ALREADY_EXISTS` status.\n\nDuring creation, the process could result in an error, in which case the index will move to the `ERROR` state. The process can be recovered by fixing the data that caused the error, removing the index with [delete](/docs/firestore/reference/rest/v1beta1/projects.databases.indexes/delete#google.firestore.admin.v1beta1.FirestoreAdmin.DeleteIndex), then re-creating the index with [create](/docs/firestore/reference/rest/v1beta1/projects.databases.indexes/create#google.firestore.admin.v1beta1.FirestoreAdmin.CreateIndex).\n\nIndexes with a single field cannot be created.\n\n### HTTP request\n\n`POST https://firestore.googleapis.com/v1beta1/{parent=projects/*/databases/*}/indexes`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|----------|------------------------------------------------------------------------------------------------------------------------|\n| `parent` | `string` The name of the database this index will apply to. For example: `projects/{projectId}/databases/{databaseId}` |\n\n### Request body\n\nThe request body contains an instance of [Index](/docs/firestore/reference/rest/v1beta1/projects.databases.indexes#Index).\n\n### Response body\n\nIf successful, the response body contains a newly created instance of [Operation](/docs/firestore/reference/rest/Shared.Types/Operation).\n\n### Authorization scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://www.googleapis.com/auth/datastore`\n- `https://www.googleapis.com/auth/cloud-platform`\n\nFor more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2)."]]