अपने वेब ऐप्लिकेशन के साथ Firebase SDK टूल इंटिग्रेट करना

Firebase App Hosting, Firebase JavaScript SDK टूल और Node.js के लिए Firebase Admin SDK की मदद से बनाए गए डाइनैमिक वेब ऐप्लिकेशन के लिए सबसे सही है. पूरी सुविधाओं वाले वेब ऐप्लिकेशन में, Firebase एसडीके टूल जैसे कि Authentication, Cloud Firestore, और App Check अहम भूमिका निभाते हैं. इस गाइड में, Firebase App Hosting पर अपने वेब ऐप्लिकेशन में Firebase को इंटिग्रेट करने और Firebase एसडीके को ऑप्टिमाइज़ करने में मदद करने वाली कुछ अहम रणनीतियों के बारे में बताया गया है.

Firebase Admin SDK और वेब एसडीके अपने-आप शुरू होने की सुविधा

Google के एनवायरमेंट, जैसे कि Firebase App Hosting, बिल्ड टाइम और रनटाइम में नो-आर्ग्युमेंट कंस्ट्रक्टर कॉल के ज़रिए, ऐप्लिकेशन को आसानी से शुरू करने की सुविधा देते हैं. यह सुविधा, Node.js के लिए Firebase Admin SDK और Firebase JavaScript SDK, दोनों में उपलब्ध है. Node.js के लिए Firebase Admin SDK, सर्वर-साइड SDK है. यह Firebase की कई सुविधाओं को अनलॉक करता है और आपके वेब ऐप्लिकेशन में बहुत काम आ सकता है.

initializeApp() की मदद से, Firebase App Hosting को वेब ऐप्लिकेशन कॉन्फ़िगरेशन अपने-आप भरने की अनुमति दी जा सकती है. साथ ही, अगर आपको डिफ़ॉल्ट वैल्यू बदलनी हैं, तो आपके पास कुछ वैल्यू पर ज़्यादा कंट्रोल रखने का विकल्प भी होता है.

बिना किसी आर्ग्युमेंट के शुरू करें

डिफ़ॉल्ट कॉन्फ़िगरेशन वैल्यू के साथ Firebase JavaScript SDK या Firebase Admin SDK को शुरू करने के लिए, बिना कोई आर्ग्युमेंट दिए initializeApp() का इस्तेमाल करें:

Admin SDK

import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();

JavaScript SDK

import { initializeApp } from 'firebase/app';
const app = initializeApp();

Admin SDK को शुरू करने की यह रणनीति, App Hosting के साथ-साथ Google के अन्य सर्वर एनवायरमेंट में भी काम करती है. जैसे, Cloud Run, App Engine, और Cloud Functions. JavaScript SDK टूल के लिए, यह रणनीति App Hosting पर काम करती है.

अपने-आप भरी गई वैल्यू बदलना

अपने-आप इंजेक्ट होने वाले डिफ़ॉल्ट कॉन्फ़िगरेशन को बदला जा सकता है. ध्यान दें कि ये विकल्प, Admin SDK और JavaScript SDK के बीच अलग-अलग होते हैं.

Admin SDK ओवरराइड

अगर आपको Realtime Database, Cloud Storage या Cloud Functions जैसी सेवाओं के लिए, पसंद के मुताबिक शुरुआती विकल्प तय करने हैं, तो FIREBASE_CONFIG एनवायरमेंट वैरिएबल का इस्तेमाल करें. अगर FIREBASE_CONFIG वैरिएबल का कॉन्टेंट { वर्ण से शुरू होता है, तो उसे JSON ऑब्जेक्ट के तौर पर पार्स किया जाएगा. ऐसा न होने पर, SDK यह मान लेगा कि स्ट्रिंग, विकल्पों वाली JSON फ़ाइल का पाथ है.

# apphosting.yaml

env:
  - variable: FIREBASE_CONFIG
    value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'

JavaScript SDK को बदलने की सुविधा

JavaScript SDK को शुरू करने के लिए, App Hosting की ओर से इंजेक्ट की गई FIREBASE_WEBAPP_CONFIG की डिफ़ॉल्ट वैल्यू को बदलने के लिए, apphosting.yaml में वैल्यू तय की जा सकती हैं:

# apphosting.yaml

env:
  - variable: FIREBASE_WEBAPP_CONFIG
    value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'

अन्य एनवायरमेंट में ऑटोमैटिक इनिशियलाइज़ेशन का इस्तेमाल करना

Firebase JavaScript SDK इंस्टॉल करने पर, npm postinstall script की मदद से, अपने-आप शुरू होने की सुविधा सेट अप हो जाती है. पोस्टइंस्टॉल स्क्रिप्ट, एनवायरमेंट वैरिएबल FIREBASE_WEBAPP_CONFIG को ढूंढती है. यह App Hosting Cloud Build एनवायरमेंट में अपने-आप सेट हो जाता है.

अगर Cloud Build के बाहर JS SDK टूल इंस्टॉल किया जा रहा है, तो Firebase JavaScript SDK टूल इंस्टॉल करते समय, आपको इस एनवायरमेंट वैरिएबल को खुद सेट करना होगा.

इंस्टॉलेशन के दौरान, एनवायरमेंट को मैन्युअल तरीके से सेट अप करने के लिए:

  1. Firebase कंसोल से, Firebase वेब ऐप्लिकेशन कॉन्फ़िगरेशन ऑब्जेक्ट कॉपी करें.

  2. टर्मिनल से, npm install कमांड चलाने से पहले FIREBASE_WEBAPP_CONFIG एनवायरमेंट वैरिएबल सेट करें.

FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase

जब भी Firebase प्रोजेक्ट या वेब ऐप्लिकेशन में बदलाव किया जाए, तब इस कमांड को फिर से चलाएं.

एसएसआर के लिए FirebaseServerApp का इस्तेमाल करना

अगर आपने अपने वेब ऐप्लिकेशन को डेवलप करने के लिए, Firebase JS SDK टूल या अन्य Firebase क्लाइंट SDK टूल का इस्तेमाल किया है, तो आपको शायद FirebaseApp इंटरफ़ेस के बारे में पता होगा. साथ ही, आपको यह भी पता होगा कि इसका इस्तेमाल करके ऐप्लिकेशन इंस्टेंस को कैसे कॉन्फ़िगर किया जाता है. सर्वर साइड पर इसी तरह की कार्रवाइयां करने के लिए, Firebase FirebaseServerApp उपलब्ध कराता है.

FirebaseServerApp, FirebaseApp का एक वैरिएंट है. इसका इस्तेमाल सर्वर साइड रेंडरिंग (एसएसआर) एनवायरमेंट में किया जाता है. इसमें ऐसे टूल शामिल हैं जिनकी मदद से, क्लाइंट साइड रेंडरिंग (सीएसआर) / सर्वर साइड रेंडरिंग के बीच के अंतर को कम करके, Firebase सेशन को जारी रखा जा सकता है.

FirebaseServerApp का इस्तेमाल इन कामों के लिए किया जा सकता है:

  • उपयोगकर्ता के कॉन्टेक्स्ट में सर्वर-साइड कोड को लागू करता है. इसके उलट, Firebase Admin SDK के पास पूरे एडमिन अधिकार होते हैं.
  • एसएसआर एनवायरमेंट में App Check का इस्तेमाल करने की अनुमति दें.
  • क्लाइंट में बनाए गए Firebase Auth सेशन को जारी रखता है.

इन कामों के लिए FirebaseServerApp का इस्तेमाल करने के बारे में पूरी जानकारी पाने के लिए, एसएसआर वाले डाइनैमिक वेब ऐप्लिकेशन में Firebase का इस्तेमाल करना लेख पढ़ें.

अपने वेब ऐप्लिकेशन में App Check को चालू करना

App Hosting पर अपने डाइनैमिक वेब ऐप्लिकेशन की सुरक्षा को बेहतर बनाने के लिए, App Check का इस्तेमाल किया जा सकता है. डाइनैमिक वेब ऐप्लिकेशन में एसएसआर के साथ Firebase का इस्तेमाल करना लेख में बताई गई, सर्वर साइड की कुछ खास रणनीतियों को लागू करके, अपने App Hosting बैकएंड को गलत इस्तेमाल से बचाया जा सकता है.