समस्या का हल करना & Android और Firebase के लिए अक्सर पूछे जाने वाले सवाल

इस पेज पर, Android से जुड़ी उन समस्याओं के बारे में सलाह और समस्या हल करने के तरीके दिए गए हैं जो Firebase का इस्तेमाल करते समय आपको आ सकती हैं.

क्या आपको कोई और समस्या आ रही है या आपको यहां दी गई समस्या नहीं दिख रही है? Firebase के बारे में अक्सर पूछे जाने वाले सवालों के जवाब पाने के लिए, Firebase के बारे में अक्सर पूछे जाने वाले सवाल देखें.

Firebase Android SDK टूल के GitHub डेटा स्टोर पर जाकर, समस्याओं की अप-टू-डेट सूची देखी जा सकती है. साथ ही, समस्याओं को हल करने के तरीके भी देखे जा सकते हैं. हमारा सुझाव है कि आप Firebase के Android SDK टूल से जुड़ी अपनी समस्याएं भी वहां दर्ज करें!

SHA-1 की जानकारी, Firebase Authentication (Google साइन इन या फ़ोन नंबर से साइन इन का इस्तेमाल करते समय) और Firebase Dynamic Links के लिए ज़रूरी है. अगर इन सुविधाओं का इस्तेमाल नहीं किया जा रहा है, तो आपको SHA-1 नहीं देना होगा.

यह गड़बड़ी तब होती है, जब हमें पता चलता है कि किसी दूसरे Firebase या Google Cloud प्रोजेक्ट में, आपके दिए गए पैकेज के नाम और SHA-1 के साथ OAuth 2.0 क्लाइंट आईडी मौजूद है. इस गड़बड़ी को ठीक करने का तरीका जानें.

आम तौर पर, गड़बड़ी का यह मैसेज मिलने का मतलब है कि आपके ऐप्लिकेशन में, Google के मेवन रिपॉज़िटरी का एक या एक से ज़्यादा रेफ़रंस मौजूद नहीं है. पक्का करें कि आपने अपनी Gradle कॉन्फ़िगरेशन फ़ाइल में, Google की Maven रिपॉज़िटरी (google()) शामिल की हो.

  • अगर आपका प्रोजेक्ट plugins सिंटैक्स का इस्तेमाल कर रहा है, तो इसे अपनी settings.gradle.kts या settings.gradle फ़ाइल के plugins सेक्शन में शामिल करें.
  • अगर आपका प्रोजेक्ट buildscript सिंटैक्स का इस्तेमाल कर रहा है, तो इसे प्रोजेक्ट-लेवल की build.gradle.kts या build.gradle फ़ाइल में, buildscript और allprojects, दोनों सेक्शन में शामिल करें.

Firebase ने मई 2021 (Firebase BoM v28.0.0) में, अपनी सभी Android लाइब्रेरी के लिए, डेसुगर करने की सुविधा बंद कर दी है (रिलीज़ नोट देखें).

इस बदलाव का मतलब है कि Android Gradle प्लग इन (AGP) के 4.2 या इससे पहले के वर्शन का इस्तेमाल करने वाले Gradle बिल्ड के लिए, Java 8 की सुविधा चालू करना ज़रूरी है. ऐसा न करने पर, Firebase SDK टूल जोड़ते समय, इन Android प्रोजेक्ट में बिल्ड करने से जुड़ी ये गड़बड़ियां होती हैं:

D8: Invoke-customs are only supported starting with Android O (--min-api 26)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle
android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
See https://developer.android.com/studio/write/java8-support.html for details.
Alternatively, increase the minSdkVersion to 26 or above.

इस गड़बड़ी को ठीक करने के लिए, इनमें से कोई एक विकल्प अपनाएं:

  • गड़बड़ी के मैसेज में दिए गए compileOptions को अपनी ऐप्लिकेशन-लेवल build.gradle.kts या build.gradle फ़ाइल में जोड़ें.
  • अपने Android प्रोजेक्ट के लिए minSdkVersion को 26 या उसके बाद के वर्शन पर सेट करें.

ऐसा होने की दो वजहें हो सकती हैं: आपने सहायता के लिए कोई ईमेल पता नहीं दिया है या आपके पास SHA पासकोड नहीं है. इस गड़बड़ी को ठीक करने के लिए, पक्का करें कि ये सभी शर्तें पूरी हों:

Firebase में ये Gradle प्लग इन होते हैं:

प्लग इन का नाम Maven कोऑर्डिनेट सबसे नया वर्शन प्लग इन आईडी
Google Play services प्लग इन com.google.gms:google-services 4.4.2 com.google.gms.google-services
App Distribution प्लग इन com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Crashlytics प्लग इन com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Performance Monitoring प्लग इन com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

यहां ऐसे Android प्रोजेक्ट में Firebase प्लग इन जोड़ने का तरीका बताया गया है जो अब भी buildscript सिंटैक्स का इस्तेमाल करता है:

  1. अपनी रूट-लेवल (प्रोजेक्ट-लेवल) Gradle फ़ाइल (<project>/build.gradle.kts या <project>/build.gradle) में, प्लग इन को डिपेंडेंसी के तौर पर जोड़ें. इसके लिए, इसके Maven कोऑर्डिनेट का इस्तेमाल करें:

    KotlinGroovy
    buildscript {
    
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
          ...
    
          // Add the Maven coordinates and latest version of the plugin
          classpath ("PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION")
        }
    }
    
    allprojects {
      ...
    
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    }
    
    buildscript {
    
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
          ...
    
          // Add the Maven coordinates and latest version of the plugin
          classpath 'PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION'
        }
    }
    
    allprojects {
      ...
    
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    }
    
  2. अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में, प्लग इन आईडी का इस्तेमाल करके प्लग इन जोड़ें:

    KotlinGroovy
    plugins {
        id("com.android.application")
    
        // Add the ID of the plugin
        id("FIREBASE_PLUGIN_ID")
        ...
    }
    
    plugins {
        id 'com.android.application'
    
        // Add the ID of the plugin
        id 'FIREBASE_PLUGIN_ID'
        ...
    }