क्लाउड फायरस्टोर स्वचालित रूप से सबसे सामान्य प्रकार की क्वेरी का समर्थन करने के लिए इंडेक्स बनाता है, लेकिन आपको क्लाउड फायरस्टोर गाइड में वर्णित कस्टम इंडेक्स और इंडेक्स ओवरराइड को परिभाषित करने की अनुमति देता है।
आप फायरबेस कंसोल में या सीएलआई का उपयोग करके कस्टम इंडेक्स बना, संशोधित और तैनात कर सकते हैं। सीएलआई से, अपनी इंडेक्स कॉन्फ़िगरेशन फ़ाइल को डिफ़ॉल्ट फ़ाइल नाम firestore.indexes.json
के साथ संपादित करें, और firebase deploy
कमांड का उपयोग करके तैनात करें।
आप firebase firestore:indexes
उपयोग करके सीएलआई के साथ इंडेक्स निर्यात कर सकते हैं।
एक इंडेक्स कॉन्फ़िगरेशन फ़ाइल एक ऑब्जेक्ट को परिभाषित करती है जिसमें एक indexes
सरणी और एक वैकल्पिक fieldOverrides
सरणी होती है। यहाँ एक उदाहरण है:
{
// Required, specify compound indexes
indexes: [
{
collectionGroup: "posts",
queryScope: "COLLECTION",
fields: [
{ fieldPath: "author", arrayConfig: "CONTAINS" },
{ fieldPath: "timestamp", order: "DESCENDING" }
]
}
],
// 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: []
}
]
}
एक सूचकांक विन्यास तैनात करें
firebase deploy
कमांड के साथ अपने इंडेक्स कॉन्फ़िगरेशन को तैनात करें। यदि आप केवल अपने प्रोजेक्ट में कॉन्फ़िगर किए गए डेटाबेस के लिए इंडेक्स तैनात करना चाहते हैं, तो --only firestore
ध्वज जोड़ें। इस आदेश के लिए विकल्प संदर्भ देखें।
तैनात इंडेक्स को सूचीबद्ध करने के लिए, firebase firestore:indexes
कमांड चलाएँ। अपने प्रोजेक्ट के डिफ़ॉल्ट डेटाबेस के अलावा किसी अन्य डेटाबेस के इंडेक्स को सूचीबद्ध करने के लिए --database=<databaseID>
ध्वज जोड़ें।
यदि आप फायरबेस कंसोल का उपयोग करके इंडेक्स में संपादन करते हैं, तो सुनिश्चित करें कि आप अपनी स्थानीय इंडेक्स फ़ाइल को भी अपडेट करते हैं। इंडेक्स को प्रबंधित करने के बारे में अधिक जानकारी के लिए, क्लाउड फायरस्टोर गाइड देखें।
JSON प्रारूप
इंडेक्स
indexes
सरणी में एक ऑब्जेक्ट के लिए स्कीमा इस प्रकार है। वैकल्पिक गुणों की पहचान ? से की जाती है ?
चरित्र।
ध्यान दें कि क्लाउड फायरस्टोर दस्तावेज़ फ़ील्ड को केवल एक मोड में अनुक्रमित किया जा सकता है, इस प्रकार फ़ील्ड ऑब्जेक्ट में order
और arrayConfig
गुण दोनों शामिल नहीं हो सकते हैं।
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 property
arrayConfig?: string // If this parameter used, must be "CONTAINS"; excludes order property
फ़ील्डओवरराइड्स
fieldOverrides
सरणी में एक ऑब्जेक्ट के लिए स्कीमा इस प्रकार है। वैकल्पिक गुणों की पहचान ? से की जाती है ?
चरित्र।
ध्यान दें कि क्लाउड फायरस्टोर दस्तावेज़ फ़ील्ड को केवल एक मोड में अनुक्रमित किया जा सकता है, इस प्रकार फ़ील्ड ऑब्जेक्ट में order
और arrayConfig
गुण दोनों शामिल नहीं हो सकते हैं।
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 नीति को fieldOverrides
सरणी का उपयोग करके निम्नानुसार सक्षम या अक्षम किया जा सकता है:
// 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: []
}
]
फ़ील्ड में डिफ़ॉल्ट अनुक्रमणिका बनाए रखने और TTL नीति सक्षम करने के लिए:
{
"fieldOverrides": [
{
"collectionGroup": "yourCollectionGroup",
"fieldPath": "yourFieldPath",
"ttl": true,
"indexes": [
{ "order": "ASCENDING", "queryScope": "COLLECTION_GROUP" },
{ "order": "DESCENDING", "queryScope": "COLLECTION_GROUP" },
{ "arrayConfig": "CONTAINS", "queryScope": "COLLECTION_GROUP" }
]
}
]
}
टाइम-टू-लिव (टीटीएल) नीतियों के बारे में अधिक जानकारी के लिए आधिकारिक दस्तावेज़ की समीक्षा करें।