
Firebase डेटास्टोरों की खोज के लिए एक उपकरण।

फायरबेस डेटास्टोर्स की खोज और शोषण के लिए एक उपकरण। फायरबेस कैसे काम करता है और हमने यह उपकरण क्यों विकसित किया, इसका अवलोकन हमारे ब्लॉग पर इस पोस्ट में देखें।
git clone https://github.com/iosiro/baserunner.gitcd baserunnernpm installnpm run buildnpm startBaserunner इंटरफ़ेस इस तरह दिखता है:

पहले, कॉन्फ़िगरेशन टेक्स्टबॉक्स का उपयोग करके आप जिस ऐप का परीक्षण करना चाहते हैं, उससे एक Firebase कॉन्फ़िगरेशन JSON संरचना लोड करें। यह इस तरह दिखता है:
{
"apiKey": "API_KEY",
"authDomain": "PROJECT_ID.firebaseapp.com",
"databaseURL": "https://PROJECT_ID.firebaseio.com",
"projectId": "PROJECT_ID",
"storageBucket": "PROJECT_ID.appspot.com",
"messagingSenderId": "SENDER_ID",
"appId": "APP_ID",
"measurementId": "G-MEASUREMENT_ID",
"databaseURL": "https://PROJECT_ID.firebasedatabase.app/"
}
फिर एक सामान्य उपयोगकर्ता के रूप में लॉग इन करें, या तो ईमेल और पासवर्ड से या मोबाइल फोन नंबर से। मोबाइल फोन नंबर से लॉग इन करते समय, अपना नंबर सबमिट करने से पहले CAPTCHA पूरा करें। फिर आपको अपने SMS से एक OTP के लिए संकेत दिया जाएगा। लॉग इन पूरा करने के लिए CAPTCHA पूरा किए बिना इसे दर्ज करें। ध्यान दें कि आप प्रमाणीकरण के बिना क्वेरी का परीक्षण करने के लिए इस चरण को छोड़ सकते हैं।
अंत में, आप एप्लिकेशन के Cloud Firestore, Realtime Database और Firebase Storage पर क्वेरी सबमिट करने के लिए क्वेरी इंटरफ़ेस का उपयोग कर सकते हैं। Baserunner सामान्य क्रियाओं के लिए कई टेम्पलेट क्वेरी प्रदान करता है। उनमें से एक पर क्लिक करके इसे टेक्स्टबॉक्स में लोड करें, और ==LIKE THIS== जैसे दिखने वाले मानों को संग्रह, आईडी, फ़ील्ड, फ़ाइल पथ आदि के वैध नामों से बदलें।
चूंकि Firebase JavaScript SDK का उपयोग करके उपलब्ध संग्रहों की सूची प्राप्त करने का कोई तरीका नहीं है, आपको इनका अनुमान लगाना होगा, या लक्ष्य एप्लिकेशन के फ्रंट-एंड JavaScript से उनके नाम प्राप्त करने होंगे।
Baserunner Firebase Storage बकेट को भी क्वेरी कर सकता है। वर्तमान में, उपकरण निर्देशिकाओं को सूचीबद्ध करने और फ़ाइलों को डाउनलोड करने का समर्थन करता है। इसका उपयोग करने के लिए, सुनिश्चित करें कि आपके Firebase कॉन्फ़िगरेशन में storageBucket फ़ील्ड शामिल है। स्टोरेज ऑपरेशन आपके डेटाबेस क्वेरीज़ के समान प्रमाणीकरण के साथ काम करेंगे।
मैं कैसे बता सकता हूं कि कोई ऐप Cloud Firestore या Realtime Database का उपयोग कर रहा है?
Realtime Database का उपयोग करने वाले एप्लिकेशन के कॉन्फ़िगरेशन ऑब्जेक्ट में databaseURL कुंजी होगी। इस कुंजी के बिना एप्लिकेशन को Cloud Firestore का उपयोग करने वाला माना जा सकता है। ध्यान दें कि Firebase एप्लिकेशन दोनों डेटास्टोर्स का उपयोग कर सकते हैं, इसलिए संदेह होने पर दोनों प्रकार की क्वेरी चलाएं।
मुझे CORS द्वारा अवरुद्ध किया जा रहा है!
इच्छित रूप से कार्य करने के लिए, Baserunner एप्लिकेशन से localhost से अनुरोध स्वीकार करने की अपेक्षा करता है, जो डिफ़ॉल्ट रूप से सक्षम है। इसलिए, Baserunner को होस्टेड एप्लिकेशन के रूप में उपयोग नहीं किया जा सकता है।
यदि आप जिस एप्लिकेशन का परीक्षण कर रहे हैं, उसके द्वारा localhost से अनुरोधों की अनुमति नहीं है, तो कम सुविधाओं वाले Baserunner का एक संस्करण आपके ब्राउज़र में dist/index.html खोलकर चलाया जा सकता है। ध्यान दें कि Baserunner चलाने का यह तरीका केवल ईमेल + पासवर्ड लॉगिन का समर्थन करता है, फ़ोन लॉगिन का नहीं।
मुझे कैसे पता चलेगा कि किन संग्रहों के लिए क्वेरी करनी है?
Cloud Firestore: सुरक्षा कारणों से, Firebase का क्लाइंट-साइड JavaScript API संग्रहों को सूचीबद्ध करने के लिए कोई तंत्र प्रदान नहीं करता है। आपको लक्ष्य एप्लिकेशन के JavaScript कोड को देखकर और शिक्षित अनुमान लगाकर इनका अनुमान लगाना होगा।
Realtime Database: चूंकि यह डेटास्टोर एक JSON ऑब्जेक्ट के रूप में दर्शाया गया है, आप संपूर्ण चीज़ को देखने का प्रयास करने के लिए प्रदान की गई '[Realtime Database] Read datastore' क्वेरी का उपयोग कर सकते हैं। ध्यान दें कि कॉन्फ़िगर किए गए नियमों के आधार पर यह विफल हो सकता है।
मुझे कैसे पता चलेगा कि Firebase Storage में कौन सी फ़ाइलें हैं?
पहले रूट (/) को सूचीबद्ध करने का प्रयास करें। यदि वह सुरक्षित है, तो देखें कि आप जिस ऐप का परीक्षण कर रहे हैं वह किन फ़ाइलों तक पहुंच रहा है। आप /uploads या /images जैसे फ़ोल्डर आज़माना चाह सकते हैं।
क्या मैं पिछली क्वेरीज़ के परिणाम देख सकता हूं?
जबकि Baserunner पेज पर केवल नवीनतम क्वेरी परिणाम प्रदर्शित होता है, सभी परिणाम ब्राउज़र कंसोल में लॉग होते हैं।
Realtime Database क्वेरी चलाते समय, मुझे एक त्रुटि मिलती है जो कहती है कि क्लाइंट ऑफ़लाइन है।
क्वेरी को फिर से चलाने का प्रयास करें।
Google से कैसे लॉग इन करूं?
ऐप का Google OAuth क्लाइंट ID (यानी NUMERIC_STR-ALPHANUMERIC_STR.apps.googleusercontent.com) खोजें। आप साइट पर "Sign in with Google" पर क्लिक करके, HTML का निरीक्षण करके और apps.googleusercontent.com खोजकर ऐसा कर सकते हैं।
अपनी DNS फ़ाइल संपादित करें (Linux और macOS पर /etc/hosts, Windows पर C:\Windows\system32\drivers\etc\hosts) और निम्न पंक्ति जोड़ें:
127.0.0.1 PROJECT_ID.firebaseapp.com
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./selfsigned.key -out selfsigned.crt
संकेतों पर, आप Common Name (e.g. server FQDN or YOUR name) [] को छोड़कर सभी फ़ील्ड खाली छोड़ सकते हैं, जिसे आपको PROJECT_ID.firebaseapp.com पर सेट करना चाहिए।
PROJECT_ID.firebaseapp.com से संबंधित सभी वेबसाइट डेटा साफ़ करें (वैकल्पिक रूप से, एक नया ब्राउज़र उपयोग करें)।यदि आप Baserunner के लिए उपयोग किए जा रहे ब्राउज़र पर DNS-over-TLS या DNS-over-HTTPS का उपयोग करते हैं, तो Firebase पर Google साइन इन के लिए आवश्यक ऑरिजिन को स्पूफ करने के लिए इसे अस्थायी रूप से अक्षम करें।
npm run startssl का उपयोग करके Baserunner चलाएं और फिर अपने ब्राउज़र में https://PROJECT_ID.firebaseapp.com लोड करें।
चरण 1 में मिले Google OAuth क्लाइंट को "Log in with Google" के अंतर्गत फ़ील्ड में दर्ज करें और "Set Google client ID" पर क्लिक करें।
Google साइन-इन बटन पर क्लिक करें और उस Google खाते का उपयोग करके साइन इन करें जिसके साथ आपने ऐप के लिए पंजीकरण किया था।
"Set Google login" बटन पर क्लिक करें।
डेटाबेस का अन्वेषण करें जैसे आप गैर-Google खाते से करते हैं।
सुरक्षा परीक्षण समाप्त होने पर, चरण 2 की पंक्ति को अपनी DNS फ़ाइल से हटा दें।