अपने ऐप्लिकेशन को Firebase से कनेक्ट करें

अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.

डेटाबेस बनाना

  1. Firebase कंसोल में, डेटाबेस और स्टोरेज > रीयलटाइम डेटाबेस पर जाएं.

  2. डेटाबेस बनाएं पर क्लिक करें.

  3. अपने Firebase Security Rules के लिए, शुरुआती मोड चुनें:

    टेस्ट मोड

    यह मोबाइल और वेब क्लाइंट लाइब्रेरी का इस्तेमाल शुरू करने के लिए अच्छा है. हालांकि, इससे कोई भी व्यक्ति आपके डेटा को पढ़ सकता है और उसे ओवरराइट कर सकता है. जांच करने के बाद, Firebase रीयलटाइम डेटाबेस के नियमों को समझना सेक्शन को ज़रूर देखें.

    वेब, Apple या Android SDK का इस्तेमाल शुरू करने के लिए, testmode चुनें.

    लॉक मोड

    मोबाइल और वेब क्लाइंट से, डेटा को पढ़ने और उसमें बदलाव करने की अनुमति नहीं देता. आपके ऐप्लिकेशन के जिन सर्वर की पुष्टि हो चुकी है वे अब भी आपके डेटाबेस को ऐक्सेस कर सकते हैं.

  4. डेटाबेस के लिए कोई जगह चुनें.

    डेटाबेस की जगह के आधार पर, नए डेटाबेस का यूआरएल इनमें से किसी एक फ़ॉर्मैट में होगा:

    • DATABASE_NAME.firebaseio.com (us-central1 में मौजूद डेटाबेस के लिए)

    • DATABASE_NAME.REGION.firebasedatabase.app (अन्य सभी जगहों पर मौजूद डेटाबेस के लिए)

  5. हो गया पर क्लिक करें.

Realtime Database को चालू करने पर, Cloud API Manager में भी एपीआई चालू हो जाता है.

अपने ऐप्लिकेशन में Realtime Database SDK टूल जोड़ना

मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में, Android के लिए Realtime Database लाइब्रेरी की डिपेंडेंसी जोड़ें. हमारा सुझाव है कि लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, Firebase Android BoM का इस्तेमाल करें.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.1"))

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-database")
}

Firebase Android BoM का इस्तेमाल करने पर, आपका ऐप्लिकेशन हमेशा Firebase Android लाइब्रेरी के साथ काम करने वाले वर्शन का इस्तेमाल करेगा.

(दूसरा तरीका)  BoM का इस्तेमाल किए बिना, Firebase लाइब्रेरी डिपेंडेंसी जोड़ें

अगर आपको Firebase BoM का इस्तेमाल नहीं करना है, तो आपको Firebase लाइब्रेरी के हर वर्शन को उसकी डिपेंडेंसी लाइन में बताना होगा.

ध्यान दें कि अगर आपके ऐप्लिकेशन में एक से ज़्यादा Firebase लाइब्रेरी इस्तेमाल की जाती हैं, तो हमारा सुझाव है कि लाइब्रेरी के वर्शन मैनेज करने के लिए, BoM का इस्तेमाल करें. इससे यह पक्का किया जा सकेगा कि सभी वर्शन साथ काम करते हों.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-database:23.0.0")
}

Realtime Database Security Rules को कॉन्फ़िगर करें

Realtime Database, डिक्लेरेटिव नियमों की भाषा उपलब्ध कराता है. इससे आपको यह तय करने में मदद मिलती है कि आपके डेटा को किस तरह स्ट्रक्चर और इंडेक्स किया जाना चाहिए. साथ ही, यह भी तय किया जा सकता है कि आपके डेटा को कब पढ़ा और लिखा जा सकता है.

अपने डेटाबेस में डेटा सेव करना

getInstance() का इस्तेमाल करके, अपने डेटाबेस का इंस्टेंस वापस पाएं और उस जगह का रेफ़रंस दें जहां आपको डेटा सेव करना है.

Kotlin

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

Java

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

इस तरह, डेटाबेस में कई तरह के डेटा टाइप सेव किए जा सकते हैं. इनमें Java ऑब्जेक्ट भी शामिल हैं. जब किसी ऑब्जेक्ट को सेव किया जाता है, तो किसी भी गेटर से मिले जवाब, इस जगह के चाइल्ड के तौर पर सेव किए जाएंगे.

अपने डेटाबेस से डेटा पढ़ना

अपने ऐप्लिकेशन के डेटा को रीयल टाइम में अपडेट करने के लिए, आपको अभी-अभी बनाए गए रेफ़रंस में एक ValueEventListener जोड़ना होगा.

इस क्लास में onDataChange() मेथड को एक बार तब ट्रिगर किया जाता है, जब लिसनर को अटैच किया जाता है. साथ ही, डेटा में बदलाव होने पर भी इसे ट्रिगर किया जाता है. इसमें चाइल्ड डेटा भी शामिल है.

Kotlin

// Read from the database
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        val value = dataSnapshot.getValue<String>()
        Log.d(TAG, "Value is: $value")
    }

    override fun onCancelled(error: DatabaseError) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException())
    }
})

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d(TAG, "Value is: " + value);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

ज़रूरी नहीं: ProGuard को कॉन्फ़िगर करना

ProGuard के साथ अपने ऐप्लिकेशन में Firebase Realtime Database का इस्तेमाल करते समय, आपको यह ध्यान रखना होगा कि कोड को छिपाने के बाद, आपके मॉडल ऑब्जेक्ट को कैसे सीरियलाइज़ और डीसीरियलाइज़ किया जाएगा. अगर डेटा को पढ़ने और लिखने के लिए, DataSnapshot.getValue(Class) या DatabaseReference.setValue(Object) का इस्तेमाल किया जाता है, तो आपको proguard-rules.pro फ़ाइल में नियम जोड़ने होंगे:

    # Add this global rule
    -keepattributes Signature

    # This rule will properly ProGuard all the model classes in
    # the package com.yourcompany.models.
    # Modify this rule to fit the structure of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

ProGuard से जुड़े सवालों या समस्याओं के बारे में मदद पाने के लिए, Guardsquare कम्यूनिटी फ़ोरम पर जाएं. यहां आपको किसी विशेषज्ञ से मदद मिलेगी.

लॉन्च की तैयारी करना

हमारा सुझाव है कि ऐप्लिकेशन लॉन्च करने से पहले, लॉन्च चेकलिस्ट देखें. इससे आपको यह पक्का करने में मदद मिलेगी कि आपका ऐप्लिकेशन लॉन्च करने के लिए तैयार है!

App Check को चालू करना न भूलें, ताकि यह पक्का किया जा सके कि सिर्फ़ आपके ऐप्लिकेशन ही आपके डेटाबेस को ऐक्सेस कर सकें.

अगले चरण