Cloud Firestore, en yaygın ancak özel dizinleri ve dizin geçersiz kılmalarını aşağıdaki gibi tanımlamanıza olanak tanır: Cloud Firestore kılavuzlarında açıklanmıştır.
Firebase konsolunda özel dizinler oluşturabilir, mevcut dizinleri değiştirebilir ve dağıtabilirsiniz.
komut satırı arayüzü kullanılır. CLI'dan dizin yapılandırma dosyanızı,
varsayılan dosya adını firestore.indexes.json
olarak ayarlayıp firebase
deploy
komutunu kullanarak dağıtın.
firebase firestore:indexes
kullanarak dizinleri CLI ile dışa aktarabilirsiniz.
Dizin yapılandırma dosyası,
indexes
dizisi ve isteğe bağlı bir fieldOverrides
dizisidir.
Aşağıda bir örnek verilmiştir:
{
// Required, specify compound and vector indexes
indexes: [
{
collectionGroup: "posts",
queryScope: "COLLECTION",
fields: [
{ fieldPath: "author", arrayConfig: "CONTAINS" },
{ fieldPath: "timestamp", order: "DESCENDING" }
]
},
{
collectionGroup: "coffee-beans",
queryScope: "COLLECTION",
fields: [
{
fieldPath: "embedding_field",
vectorConfig: { dimension: 256, flat: {} }
}
]
}
],
// Optional, disable indexes or enable single-field collection group indexes
fieldOverrides: [
{
collectionGroup: "posts",
fieldPath: "myBigMapField",
// We want to disable indexing on our big map field, and so empty the indexes array
indexes: []
}
]
}
Dizin yapılandırması dağıtma
firebase deploy
komutuyla dizin yapılandırmanızı dağıtın. Yalnızca
projenizde yapılandırılan veritabanları için dizinleri dağıtmak istiyorsanız,
--only firestore
işareti. Bu komutla ilgili seçenekler referansına bakın.
Dağıtılan dizinleri listelemek için firebase firestore:indexes
komutunu çalıştırın. URL'yi
Sizin dışındaki bir veritabanına ait dizinleri listelemek için --database=<databaseID>
işareti
varsayılan veritabanını kullanır.
Firebase konsolunu kullanarak dizinlerde düzenleme yaparsanız yerel dizin dosyanızı güncelleyin. Dizinleri yönetme hakkında daha fazla bilgi için Cloud Firestore kılavuz.
JSON biçimi
Dizinler
indexes
dizisindeki bir nesnenin şeması aşağıdaki gibidir. İsteğe bağlı
özellikleri ?
karakteriyle tanımlanır.
Cloud Firestore doküman alanının yalnızca tek bir modda dizine eklenebileceğini unutmayın.
Bu nedenle, bir alan nesnesi order
, arrayConfig
ve
vectorConfig
mülk.
collectionGroup: string // Labeled "Collection ID" in the Firebase console
queryScope: string // One of "COLLECTION", "COLLECTION_GROUP"
fields: array
fieldPath: string
order?: string // One of "ASCENDING", "DESCENDING"; excludes arrayConfig and vectorConfig properties
arrayConfig?: string // If this parameter used, must be "CONTAINS"; excludes order and vectorConfig properties
vectorConfig?: object // Indicates that this is a vector index; excludes order and arrayConfig properties
dimension: number // The resulting index will only include vectors of this dimension
flat: {} // Indicates the vector index is a flat index
Alan Geçersiz Kılmaları
fieldOverrides
dizisindeki bir nesnenin şeması aşağıdaki gibidir. İsteğe bağlı
özellikleri ?
karakteriyle tanımlanır.
Cloud Firestore doküman alanının yalnızca tek bir modda dizine eklenebileceğini unutmayın.
Bu nedenle, alan nesnesi hem order
hem de arrayConfig
içeremez
özellikler.
collectionGroup: string // Labeled "Collection ID" in the Firebase console
fieldPath: string
ttl?: boolean // Set specified field to have TTL policy and be eligible for deletion
indexes: array // Use an empty array to disable indexes on this collectionGroup + fieldPath
queryScope: string // One of "COLLECTION", "COLLECTION_GROUP"
order?: string // One of "ASCENDING", "DESCENDING"; excludes arrayConfig property
arrayConfig?: string // If this parameter used, must be "CONTAINS"; excludes order property
TTL Politikası
TTL politikası, fieldOverrides
dizisi kullanılarak aşağıdaki şekilde etkinleştirilebilir veya devre dışı bırakılabilir:
// Optional, disable index single-field collection group indexes
fieldOverrides: [
{
collectionGroup: "posts",
fieldPath: "ttlField",
ttl: "true", // Explicitly enable TTL on this Field.
// Disable indexing so empty the indexes array
indexes: []
}
]
Alandaki varsayılan dizine eklemeyi korumak ve bir TTL politikasını etkinleştirmek için:
{
"fieldOverrides": [
{
"collectionGroup": "yourCollectionGroup",
"fieldPath": "yourFieldPath",
"ttl": true,
"indexes": [
{ "order": "ASCENDING", "queryScope": "COLLECTION_GROUP" },
{ "order": "DESCENDING", "queryScope": "COLLECTION_GROUP" },
{ "arrayConfig": "CONTAINS", "queryScope": "COLLECTION_GROUP" }
]
}
]
}
Geçerlilik süresi (TTL) politikaları hakkında daha fazla bilgi için resmi belgeleri inceleyin.