Cloud Firestore एक NoSQL, दस्तावेज़-ओरिएंटेड डेटाबेस है. एसक्यूएल डेटाबेस के उलट, कोई तालिका या पंक्ति नहीं है. इसके बजाय, डेटा को दस्तावेज़ों में सेव किया जाता है, जो कलेक्शन में व्यवस्थित किए जा सकते हैं.
हर दस्तावेज़ में की-वैल्यू पेयर का सेट होता है. Cloud Firestore है छोटे दस्तावेज़ों के बड़े संग्रह को स्टोर करने के लिए ऑप्टिमाइज़ किया गया है.
सभी दस्तावेज़, कलेक्शन में सेव होने चाहिए. दस्तावेज़ों में ये चीज़ें शामिल हो सकती हैं सब-कलेक्शन और नेस्ट किए गए ऑब्जेक्ट, दोनों में प्रिमिटिव फ़ील्ड शामिल हो सकते हैं जैसे कि स्ट्रिंग या जटिल ऑब्जेक्ट.
कलेक्शन और दस्तावेज़, Cloud Firestore में साफ़ तौर पर बनाए जाते हैं. इसके लिए, कलेक्शन में मौजूद किसी दस्तावेज़ को डेटा असाइन करें. अगर इनमें से कोई एक या दस्तावेज़ मौजूद नहीं है, तो Cloud Firestore इसे बनाता है.
दस्तावेज़
Cloud Firestore में, स्टोरेज की यूनिट को दस्तावेज़ कहा जाता है. दस्तावेज़ लाइटवेट रिकॉर्ड, जिसमें फ़ील्ड होते हैं जो वैल्यू पर मैप करते हैं. हर दस्तावेज़ नाम से पहचाना जाता है.
उपयोगकर्ता alovelace
को दिखाने वाला दस्तावेज़ कुछ ऐसा दिख सकता है:
प्यारा
first : "Ada"
last : "Lovelace"
born : 1815
किसी दस्तावेज़ में कॉम्प्लेक्स और नेस्ट किए गए ऑब्जेक्ट को मैप कहा जाता है. उदाहरण के लिए, आपके पास ये विकल्प हैं ऊपर दिए गए उदाहरण में उपयोगकर्ता के नाम को मैप की मदद से व्यवस्थित करें, इस तरह:
प्यारा
name :
first : "Ada"
last : "Lovelace"
born : 1815
शायद आपने देखा होगा कि दस्तावेज़ काफ़ी हद तक JSON की तरह दिखते हैं. असल में, ऐसा ही है. कुछ अंतर हैं. उदाहरण के लिए, दस्तावेज़ में अतिरिक्त डेटा टाइप और आकार में 1 MB तक सीमित होती हैं), लेकिन सामान्य रूप से आप दस्तावेज़ों को लाइटवेट JSON रिकॉर्ड.
संग्रह
दस्तावेज़, कलेक्शन में मौजूद होते हैं, जो सिर्फ़ दस्तावेज़ों के कंटेनर होते हैं. इसके लिए
उदाहरण के लिए, आपके पास अपने अलग-अलग उपयोगकर्ताओं को शामिल करने के लिए users
कलेक्शन हो सकता है, हर एक
जिसे एक दस्तावेज़ के रूप में दिखाया गया है:
उपयोगकर्ता
प्यारा
first : "Ada"
last : "Lovelace"
born : 1815
first : "Alan"
last : "Turing"
born : 1912
Cloud Firestore स्कीमालेस है. इसलिए, आपके पास इन चीज़ों को तय करने की पूरी आज़ादी है आपके डाले गए डेटा को भी शामिल करता है. एक ही कलेक्शन में मौजूद दस्तावेज़ों में अलग-अलग फ़ील्ड या स्टोर हो सकते हैं अलग-अलग तरह के डेटा को शामिल करने की ज़रूरत नहीं है. हालांकि, यह जानना अच्छा है कि कई दस्तावेज़ों में एक ही फ़ील्ड और डेटा टाइप, ताकि आप दस्तावेज़ों को जोड़ना आसान हो जाता है.
कलेक्शन में दस्तावेज़ होते हैं, अन्य कुछ नहीं. इसमें सीधे तौर पर रॉ नहीं हो सकता फ़ील्ड में वैल्यू होती हैं और इसमें दूसरे संग्रह शामिल नहीं हो सकते. (पदानुक्रमिक देखें डेटा: स्ट्रक्चर को ज़्यादा जटिल बनाने के तरीके Cloud Firestore में डेटा.)
कलेक्शन में मौजूद दस्तावेज़ों के नाम यूनीक होते हैं. आप अपना खुद का डेटा दे सकते हैं जैसे कि यूज़र आईडी या आप Cloud Firestore को रैंडम आईडी बनाने की अनुमति दे सकते हैं आपके लिए अपने आप.
आपको "बनाने" की ज़रूरत नहीं है या "मिटाएं" संग्रह. पहला आइटम बनाने के बाद एक संग्रह है, तो संग्रह मौजूद है. अगर आप पूरा दस्तावेज़ हैं, तो यह अब मौजूद नहीं है.
रेफ़रंस
Cloud Firestore में हर दस्तावेज़ की जगह से अलग पहचान की जाती है
डेटाबेस में मौजूद है. पिछले उदाहरण में, इसमें alovelace
दस्तावेज़ दिखाया गया
संग्रह users
. अपने कोड में इस जगह की जानकारी देने के लिए,
reference सबमिट करें.
Web
import { doc } from "firebase/firestore"; const alovelaceDocumentRef = doc(db, 'users', 'alovelace');
Web
var alovelaceDocumentRef = db.collection('users').doc('alovelace');
Swift
let alovelaceDocumentRef = db.collection("users").document("alovelace")
Objective-C
FIRDocumentReference *alovelaceDocumentRef = [[self.db collectionWithPath:@"users"] documentWithPath:@"alovelace"];
Kotlin+KTX
val alovelaceDocumentRef = db.collection("users").document("alovelace")
Java
DocumentReference alovelaceDocumentRef = db.collection("users").document("alovelace");
Dart
final alovelaceDocumentRef = db.collection("users").doc("alovelace");
Java
Python
Python
C++
DocumentReference alovelace_document_reference = db->Collection("users").Document("alovelace");
Node.js
शुरू करें
PHP
PHP
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Unity
DocumentReference documentRef = db.Collection("users").Document("alovelace");
C#
C#
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Ruby
रेफ़रंस एक लाइटवेट ऑब्जेक्ट होता है, जो आपके डेटाबेस. यह रेफ़रंस बनाया जा सकता है कि डेटा वहां मौजूद है या नहीं. साथ ही, रेफ़रंस बनाने से कोई नेटवर्क ऑपरेशन नहीं होता है.
आपके पास कलेक्शन के लिए रेफ़रंस बनाने का भी विकल्प है:
Web
import { collection } from "firebase/firestore"; const usersCollectionRef = collection(db, 'users');
Web
var usersCollectionRef = db.collection('users');
Swift
let usersCollectionRef = db.collection("users")
Objective-C
FIRCollectionReference *usersCollectionRef = [self.db collectionWithPath:@"users"];
Kotlin+KTX
val usersCollectionRef = db.collection("users")
Java
CollectionReference usersCollectionRef = db.collection("users");
Dart
final usersCollectionRef = db.collection("users");
Java
Python
Python
C++
CollectionReference users_collection_reference = db->Collection("users");
Node.js
शुरू करें
PHP
PHP
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Unity
CollectionReference collectionRef = db.Collection("users");
C#
C#
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Ruby
सुविधा के लिए, आप
दस्तावेज़ या स्ट्रिंग को स्ट्रिंग के तौर पर इकट्ठा करें, जिसके पाथ कॉम्पोनेंट को फ़ॉरवर्ड किया गया हो
स्लैश (/
). उदाहरण के लिए, alovelace
दस्तावेज़ का रेफ़रंस बनाने के लिए:
Web
import { doc } from "firebase/firestore"; const alovelaceDocumentRef = doc(db, 'users/alovelace');
Web
var alovelaceDocumentRef = db.doc('users/alovelace');
Swift
let aLovelaceDocumentReference = db.document("users/alovelace")
Objective-C
FIRDocumentReference *aLovelaceDocumentReference = [self.db documentWithPath:@"users/alovelace"];
Kotlin+KTX
val alovelaceDocumentRef = db.document("users/alovelace")
Java
DocumentReference alovelaceDocumentRef = db.document("users/alovelace");
Dart
final aLovelaceDocRef = db.doc("users/alovelace");
Java
Python
Python
C++
DocumentReference alovelace_document = db->Document("users/alovelace");
Node.js
शुरू करें
PHP
PHP
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Unity
DocumentReference documentRef = db.Document("users/alovelace");
C#
C#
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Ruby
हैरारकी के हिसाब से डेटा
यह समझने के लिए कि Cloud Firestore में हैरारकी वाले डेटा स्ट्रक्चर कैसे काम करते हैं, उदाहरण के लिए, मैसेज और चैट रूम वाले चैट ऐप्लिकेशन का इस्तेमाल करें.
अलग-अलग चैट रूम को सेव करने के लिए, rooms
नाम का एक कलेक्शन बनाया जा सकता है:
कमरा
रूमA
name : "my chat room"
रूमबी
...
अब जब आपके पास चैट रूम हैं, तो तय करें कि अपने मैसेज को कैसे सेव करना है. शायद आप ये न कर पाएं को चैट रूम के दस्तावेज़ में सेव करना चाहे. Cloud Firestore में मौजूद दस्तावेज़ उनका साइज़ छोटा होना चाहिए. साथ ही, चैट रूम में बड़ी संख्या में मैसेज हो सकते हैं. हालांकि, अपने चैट रूम के दस्तावेज़ में अतिरिक्त कलेक्शन बनाए जा सकते हैं, सब-कलेक्शन के तौर पर.
उप-संग्रह
इस स्थिति में मैसेज सेव करने का सबसे अच्छा तरीका, सब-कलेक्शन का इस्तेमाल करना है. ऐप्लिकेशन सबकलेक्शन, किसी खास दस्तावेज़ से जुड़ा कलेक्शन होता है.
इसमें मौजूद हर कमरे के दस्तावेज़ के लिए, messages
नाम का सब-कलेक्शन बनाया जा सकता है
आपका rooms
संग्रह:
कमरा
रूमA
name : "my chat room"
मैसेज
मैसेज1
from : "alex"
msg : "Hello World!"
मैसेज2
...
रूमबी
...
इस उदाहरण में, आपको सब-कलेक्शन में मौजूद किसी मैसेज के लिए रेफ़रंस बनाना होगा कोड का इस्तेमाल करें:
Web
import { doc } from "firebase/firestore"; const messageRef = doc(db, "rooms", "roomA", "messages", "message1");
Web
var messageRef = db.collection('rooms').doc('roomA') .collection('messages').doc('message1');
Swift
let messageRef = db .collection("rooms").document("roomA") .collection("messages").document("message1")
Objective-C
FIRDocumentReference *messageRef = [[[[self.db collectionWithPath:@"rooms"] documentWithPath:@"roomA"] collectionWithPath:@"messages"] documentWithPath:@"message1"];
Kotlin+KTX
val messageRef = db .collection("rooms").document("roomA") .collection("messages").document("message1")
Java
DocumentReference messageRef = db .collection("rooms").document("roomA") .collection("messages").document("message1");
Dart
final messageRef = db .collection("rooms") .doc("roomA") .collection("messages") .doc("message1");
Java
Python
Python
C++
DocumentReference message_reference = db->Collection("rooms") .Document("roomA") .Collection("messages") .Document("message1");
Node.js
शुरू करें
PHP
PHP
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Unity
DocumentReference documentRef = db .Collection("Rooms").Document("RoomA") .Collection("Messages").Document("Message1");
C#
C#
Cloud Firestore क्लाइंट बनाने और इंस्टॉल करने के बारे में ज़्यादा जानकारी के लिए, यह लेख पढ़ें Cloud Firestore क्लाइंट लाइब्रेरी.
Ruby
कलेक्शन और दस्तावेज़ों के अलग-अलग पैटर्न पर ध्यान दें. आपके संग्रह और दस्तावेज़ों को हमेशा इस पैटर्न का पालन करना होगा. आपके पास किसी कलेक्शन का रेफ़रंस देने का विकल्प नहीं है किसी कलेक्शन या दस्तावेज़ के दस्तावेज़ में मौजूद होता है.
सब-कलेक्शन की मदद से, डेटा को हैरारकी के हिसाब से व्यवस्थित किया जा सकता है. इससे, डेटा को
ऐक्सेस करें. roomA
में मौजूद सभी मैसेज पाने के लिए, एक कलेक्शन रेफ़रंस बनाएं
को सब-कलेक्शन messages
में जोड़ें और इससे उसी तरह इंटरैक्ट करें, जैसे आप किसी अन्य तरह से करते
कलेक्शन रेफ़रंस.
उप-संग्रह के दस्तावेज़ों में उप-संग्रह भी शामिल हो सकते हैं. इससे आपको ये काम करने में मदद मिलती है और Nest डेटा. ज़्यादा से ज़्यादा 100 लेवल डेटा को नेस्ट किया जा सकता है.