स्पंदन और google_sign_in प्लगइन: PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 10:, null)


100

क्रेडेंशियल्स के लिए संवाद (Google फ़ॉर्म) सफलतापूर्वक खोला जाता है, लेकिन मैं अपनी साख भरने के बाद मुझे यह त्रुटि मिल रही है। मैंने यहां से निर्देशों का पालन किया । फायरबेस प्रोजेक्ट बनाया, Google API कॉन्सोल से Google ड्राइव API (जो मुझे अभी चाहिए)।

अपवाद फेंकने वाला कोड:

final GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: [
    'https://www.googleapis.com/auth/drive',
  ],
);

await _googleSignIn.signIn();

यह स्टैक ट्रेस है:

E/flutter ( 5068): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter ( 5068): PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
E/flutter ( 5068): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:551:7)
E/flutter ( 5068): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:292:18)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #2      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:226:58)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #3      GoogleSignIn._addMethodCall (package:google_sign_in/google_sign_in.dart:268:20)
E/flutter ( 5068): #4      GoogleSignIn.signIn (package:google_sign_in/google_sign_in.dart:339:48)
E/flutter ( 5068): #5      ThatsMyComponentState.theSignInFuction.<anonymous closure> (package:my_app/widgets/my_file.dart:666:45)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #6      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
E/flutter ( 5068): #7      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
E/flutter ( 5068): #8      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
E/flutter ( 5068): #9      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
E/flutter ( 5068): #10     TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:204:7)
E/flutter ( 5068): #11     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter ( 5068): #12     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:184:20)
E/flutter ( 5068): #13     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:158:22)
E/flutter ( 5068): #14     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:138:7)
E/flutter ( 5068): #15     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:101:7)
E/flutter ( 5068): #16     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:85:7)
E/flutter ( 5068): #17     _invoke1 (dart:ui/hooks.dart:168:13)
E/flutter ( 5068): #18     _dispatchPointerDataPacket (dart:ui/hooks.dart:122:5)

Google_sign_in प्लगइन का संस्करण 4.0.0 है।

यह स्पंदन सिद्धांत का उत्पादन है -v :

[√] Flutter (Channel stable, v1.0.0, on Microsoft Windows [Version 10.0.17763.253], locale en-US)
• Flutter version 1.0.0 at C:\src\flutter-0.7.3\flutter
• Framework revision 5391447fae (10 weeks ago), 2018-11-29 19:41:26 -0800
• Engine revision 7375a0f414
• Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
• Android SDK at C:\Users\myuser\AppData\Local\Android\Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = C:\Users\myuser\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
• All Android licenses accepted.

[√] Android Studio (version 3.3)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 32.0.1
• Dart plugin version 182.5124
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[!] IntelliJ IDEA Community Edition (version 2018.1)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1.6
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
• For information about installing plugins, see
  https://flutter.io/intellij-setup/#installing-the-plugins

[!] VS Code, 64-bit edition (version 1.30.2)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension not installed; install from
  https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

! Doctor found issues in 2 categories.

किसी भी प्रकार के मदद की बहुत सराहना की जाएगी। धन्यवाद!


सभी के लिए: अपवाद कोड पर ध्यान दें ApiException: 10और डॉक्स को पहले देखें - Developers.google.com/android/reference/com/google/android/gms/… सुनिश्चित करें कि आप सही समस्या को ठीक कर रहे हैं। उदाहरण के लिए कोड 7 का मतलब सिर्फ 'नो इंटरनेट कनेक्शन' होगा।
किरिल Karmazin

रन ./gradlew साइनिंग रीपोर्ट, यह ऐप एंड्रॉइड फ़ोल्डर के अंतर्गत है। SHA1 को Google Firebase Google साइन इन कॉन्फ़िगरेशन में जोड़ें। Developers.google.com/android/guides/client-auth । आपके द्वारा काम करने वाले प्रत्येक कंप्यूटर के लिए आपको SHA1 की आवश्यकता होगी।
लाइव-लव

@KirillKarmazin किसी भी विचार 12500 क्या है? E / flutter (23795): [ERROR: flutter / lib / ui / ui_dart_state.cc (157)] अखंडित अपवाद: PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, null)
रायटन

जवाबों:


155

मैं अभी इसी मुद्दे पर चलता हूं। ऐसा तब हो सकता है जब आप डिबग पर चल रहे हों और आपने फायरबेस में फिंगरप्रिंट रजिस्टर नहीं किया हो SHA। मैंने इसे debug.keystoreFirebase पर ऐप के अंदर रजिस्टर करके और इसे रजिस्टर करके हल किया । google-services.jsonउसके बाद नया डाउनलोड करना न भूलें । यह भी देखें इस

यहां छवि विवरण दर्ज करें

संपादित करें यदि आप रिलीज़ मोड में प्रमाणीकरण का उपयोग करने में सक्षम नहीं हैं, तो निम्न प्रयास करें:

रिलीज़ कुंजी के SHA प्रमाणपत्र फ़िंगरप्रिंट्स जोड़ें।

keytool -exportcert -list -v \ -alias <your-key-name> -keystore <path-to-production-keystore>

उस बारे में अधिक जानकारी के लिए यहां देखें अनुभाग "get release certificate" https://developers.google.com/android/guides/client-auth पर

यदि आपका प्रमाणीकरण अभी भी काम नहीं कर रहा है, तो संभवत: ऐसा इसलिए है क्योंकि आपने Playstore से ऐप डाउनलोड किया है और आपने "Google Play फ़ीचर द्वारा ऐप साइनिंग" सक्षम किया है। तो इस स्थिति के लिए, प्ले स्टोर पब्लिश कंसोल पर जाएं और रिलीज़ मैनेजमेंट के तहत ऐप साइनिंग पर जाएं। वहां आपको फायरबेस कंसोल में पंजीकरण करने के लिए SHA प्रमाणपत्र फिंगरप्रिंट मिलेगा।

यहां छवि विवरण दर्ज करें


19
इसके लिए धन्यवाद। इससे मदद मिली। वर्थ को ध्यान में रखते हुए कि दोनों को SHA1 और SHA256 कीज़ को काम करने के लिए जोड़ा जाना चाहिए
Srini

2
इसे उत्तर के रूप में स्वीकार करें।
मुरुगनंथम के

@TSR ने यह काम किया लेकिन मुझे एक नया google-services.json डाउनलोड नहीं करना पड़ा।
डैरेन कोल

2
FYI करें, मुझे अपनी उँगलियों के निशान को हटाने के बाद भी वही त्रुटि थी। यह भी बताता है कि मुझे प्रति github.com/flutter/flutter/issues/25909#issuecomment-497378619 पर एक समर्थन ईमेल पता भी जोड़ना था ।
माइकल नेल्सन

@MichaelNelson यह मेरी समस्या थी,
Tobias

44

निम्नलिखित समाधान स्पंदन परियोजना में काम करता है:

चरण 1: SHA1 और SHA256 कुंजियाँ बनाएँ
चरण 2: दोनों SHA1 और SHA256 को फायरबेस में जोड़ें। (आप सेटिंग में)
चरण 3: डाउनलोड गूगल-services.json को एंड्रॉयड / एप्लिकेशन अपनी परियोजना फ़ोल्डर में।
चरण 4: अपने टर्मिनल में कमांड चलाएं flutter clean
चरण 5: अपना स्पंदन ऐप चलाएं।

अधिक जानकारी के लिए यात्रा करें:
https://developers.google.com/android/guides/client-auth
https://firebase.google.com/docs/flutter/setup


10
स्वच्छ बहुत महत्वपूर्ण है
mkkhedawat

29

जब मैं इस समस्या को लेकर आया, तो मैंने इस पोस्ट में वर्णित अन्य सभी समाधानों की कोशिश की। इनमें से कुछ भी काम नहीं किया। आखिरकार मुझे यह पता चला: मेरी स्थिति में मुझे अपना "सपोर्ट ईमेल" सेट करना सुनिश्चित करना था।

सार्वजनिक सेटिंग समर्थन ईमेल


इसने मेरे लिए काम किया।
दिनवल्जो

27

आपको अपने Google क्लाउड Api प्रोजेक्ट को अपने पैकेज से कॉन्फ़िगर करना होगा।

https://developers.google.com/identity/sign-in/android/start-integrating#configure_a_project

फायरबेस के एक ही खाते से लॉग इन किया जाना सुनिश्चित करें

  1. अपना फायरबेस प्रोजेक्ट चुनें
  2. Android का चयन करें
  3. अपने स्पंदन प्रोजेक्ट के अंदर टर्मिनल खोलें
  4. cd android
  5. ./gradlew signingReport या gradlew signingReport
  6. अपने पैकेज का नाम और अपनी SHA1 कुंजी चिपकाएँ
  7. ग्राहक जानकारी डाउनलोड करें
  8. डाउनलोड करें और बदलें google-services.json
  9. flutter clean

आईओएस:

  1. अपना फायरबेस प्रोजेक्ट चुनें
  2. IOS का चयन करें
  3. अपनी बंडल आईडी दर्ज करें
  4. डाउनलोड क्रेडिट्स
  5. डाउनलोड करें और बदलें GoogleService-info.plist

2
gradlew signReport मुझे बहुत मदद करता है, क्योंकि मैं पहली बार सिर्फ गलत कीस्टोर का उपयोग करता हूं। और उस आदेश के साथ, आपको निश्चित रूप से सही मिलता है।
भेलूसे

25

मैंने इसे ठीक करने के लिए उम्र बिताई।

1. Open grade.properties यह फ़ाइल इस प्रकार पाई जाती है: {{Your PROJECT}} / android / gradle.properties

यहां छवि विवरण दर्ज करें

2. स्क्रीनशॉट में दिखाए अनुसार निम्न तर्क को 'org.gradle.jvmargs' में जोड़ें।

-XX: MaxHeapSize = 256m -Xmx256m

यहां छवि विवरण दर्ज करें

3. 'gradlew' पर राइट क्लिक करें और 'Open in Terminal' पर जाएँ, यह फ़ाइल {{Your PROJECT}} / android / gradlew के अंतर्गत पाई गई है

यहां छवि विवरण दर्ज करें

4. निम्न कमांड में टाइप करें।

gradlew signingReport

अगर काम नहीं किया तो पहले दूसरी कमांड आज़माएँ:

./gradlew signingReport

5. समापन के लिए संकलन की प्रतीक्षा करें और आपकी SHA कुंजी आपके लिए प्रिंट की जानी चाहिए।

यहां छवि विवरण दर्ज करें

Https://console.firebase.google.com/ में अपने ऐप को प्रमाणित करने के लिए इन कुंजियों का उपयोग करें


1
मेरे लिए वह एकमात्र काम है जो मेरे काम का है, मेरे कुंजीटूल ने SHA-1 / SHA-256
PRO GRAMMER

4
यदि चरण 4 काम नहीं करता, तो इसके बजाय gradlew को कॉल करें: ./gradlew पर हस्ताक्षर करेंReport
Tincho825

1
कहने का मतलब यह है कि मेरे लिए भी यही काम है। सब कुछ करने की कोशिश की और इस खोजने से पहले इस मुद्दे को सुलझाने की कोशिश में दिन बिताए।
मार्क रावलिंगसन

इस त्रुटि को प्राप्त करना: कक्षा को आरंभ नहीं कर सका। org.ghaus.groovy.runtime.InvokerHelper
Ramis

यह सबसे आसान तरीका है! इसे स्वीकार किया जाना चाहिए।
reverie_ss

11

मेरे लिए मुझे अतिरिक्त SHAs जोड़ने की आवश्यकता नहीं थी, मुझे एहसास हुआ कि मैंने Firebase कंसोल में प्रमाणीकरण टैब में Google साइन-इन विधि को सक्षम नहीं किया है

फायरबेस कंसोल में गूगल साइन-इन विधि को सक्षम करना


7

काम करने के लिए आपको google_sign_in के लिए अतिरिक्त कदम उठाने पड़ सकते हैं:

] [2]

  • यदि आप डिबग के दौरान Google साइन इन कर सकते हैं, लेकिन रिलीज़ में नहीं, तो इस बात की अधिक संभावना है कि आपने अपनी रिलीज़ कुंजी SHA1 और SHA256 को फायरबेस में नहीं जोड़ा है। रिलीज़ कुंजी के SHAs प्राप्त करने के लिए, का उपयोग करेंkeytool -list -v -keystore ~/key.jks -alias key

कंसोल आपको कम से कम 6 SHA क्रेडेंशियल्स के साथ समाप्त होना चाहिए : डिबग कुंजी से 2, Google Play लिंकिंग से 2, और रिलीज़ कुंजी से 2। ध्यान दें कि आपको फ़ायर -बेस पर रिलीज़ SHA क्रेडेंशियल्स को जोड़ने के बाद google-services.json फ़ाइल को फिर से डाउनलोड करने की आवश्यकता नहीं है।

Firebase

# Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

# GooglePlay Services
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
-keep class com.google.common.** { *; }
-dontwarn com.google.common.**

7

आपने कॉन्फ़िगरेशन चरण को याद किया है।

Google साइन-इन आपके कनेक्ट किए गए iOS और वेब एप्लिकेशन पर स्वचालित रूप से कॉन्फ़िगर किया गया है। अपने Android ऐप्स के लिए Google साइन-इन सेट करने के लिए, आपको अपने प्रोजेक्ट सेटिंग्स पर प्रत्येक ऐप के लिए SHA1 फ़िंगरप्रिंट जोड़ना होगा।

बस इन पर्याप्त चरणों को नीचे पूरा करें

  1. Google प्रामाणिक विधि सक्षम करें
  2. अपने वर्तमान प्रोजेक्ट में प्रमाणपत्र फ़िंगरप्रिंट को कॉन्फ़िगर करें project-level settingसर्टिफिकेट कैसे जनरेट करें
  3. प्रोजेक्ट सपोर्ट ईमेल के लिए ईमेल का चयन करें
  4. google-service.jsonअपने प्रोजेक्ट में डाउनलोड करें।
  5. Daud flutter clean
  6. शुरू flutter run

छवि


6

"स्पटर क्लीन" इसका टुकड़ा है जिसे फायरबेस कंसोल में SHA1 रजिस्टर करने के बाद हर कोई गायब है!


4

प्लेटफ़ॉर्म अपवाद 10 के लिए, यह आज़माएँ:

  1. अपनी मशीन पर एक नया SHA1 फिंगरप्रिंट उत्पन्न करें,
  2. फायरबेस कंसोल में अपने फायरबेस एंड्रॉइड ऐप सेटिंग पर जाएं
  3. अपने एंड्रॉइड ऐप सेटिंग्स में नए फिंगरप्रिंट जोड़ें पर क्लिक करें
  4. नए SHA1 फ़िंगरप्रिंट को फ़ील्ड में पेस्ट करें
  5. एक नया json config फ़ाइल जनरेट करें
  6. एंड्रॉइड डायरेक्टरी में कॉन्फिगर फाइल को बदलें
  7. स्वच्छ होकर बहो
  8. अपना प्रोजेक्ट चलाएं

3

एक कारण यह है कि आप इस त्रुटि का अनुभव कर सकते हैं यदि आपने Google के OAuth सहमति फॉर्म को नहीं भरा है। यह फायरबेस के लिए एक नया बदलाव है।

यहां आपके ऐप के लिए सहमति फ़ॉर्म भरने के लिए आपको जिन चरणों का पालन करने की आवश्यकता है:

  1. Google एपीआई कंसोल (वर्तमान में https://console.developers.google.com पर ) पर जाएं , सुनिश्चित करें कि आप अपने खाते में लॉग इन हैं, जिसके तहत आपका फायरबेस प्रोजेक्ट बनाया गया है।
  2. डेवलपर कंसोल के ऊपर बाईं ओर "प्रोजेक्ट चुनें" ड्रॉपडाउन से अपनी परियोजना चुनें।
  3. बाएं हाथ के फलक में "क्रेडेंशियल्स" पर जाएं और फिर "OAuth सहमति स्क्रीन" पर जाएं।
  4. "एप्लिकेशन नाम" के तहत अपने आवेदन का सार्वजनिक नाम दर्ज करें
  5. "एप्लिकेशन लोगो" के तहत अपने आवेदन की एक स्थानीय छवि फ़ाइल अपलोड करें
  6. "समर्थन ईमेल" के तहत अपने फायरबेस एप्लिकेशन में सूचीबद्ध समान समर्थन ईमेल दर्ज करें।

आपकी स्क्रीन को अब चरण 6 द्वारा इस उदाहरण की तरह दिखना चाहिए

  1. नीचे स्क्रॉल करें और "एप्लिकेशन होमपेज लिंक", "एप्लीकेशन प्राइवेसी पॉलिसी लिंक", और "एप्लीकेशन लिंक की सेवा शर्तें" http: // को जोड़कर अधिकृत डोमेन से पहले भरें, जिस पर आपका फायरबेस ऐप रहता है।

यहां एक उदाहरण दिया गया है कि इन क्षेत्रों को चरण 7 में कैसे भरा जाना चाहिए

  1. सहेजें पर क्लिक करें

ये कदम मेरे लिए काम कर गया! लिंक अभी भी अस्तित्व में नहीं हो सकता है, मैं इस समाधान के स्रोत का उल्लेख करना चाहते हैं यहां


क्या यह वास्तव में सवाल का जवाब है?
बुलट

धन्यवाद प्रतिक्रिया देना के लिए। मैंने अपने उत्तर को और अधिक विशिष्ट बनाने की कोशिश की - कृपया मुझे बताएं कि क्या यह अब उपयुक्त है - और यदि नहीं, तो मैं इसे कैसे सुधार सकता हूं।
बेन इलियट

1
क्या आपको "सत्यापन के लिए सबमिट करें", या बस "सहेजें" की आवश्यकता है?
सरल

2

यह मूर्खतापूर्ण लग सकता है, लेकिन यह अभी मेरे साथ हुआ है (अतीत में फायरबेस के साथ काम करने का कुछ अनुभव होने के बाद)। मैंने देखा कि मैंने Google प्रमाणीकरण को सक्षम नहीं किया। सुनिश्चित करें कि आप ऐसा करते हैं, जैसा कि आप अभी भी लॉगिन प्रॉम्प्ट देख सकते हैं (आपको अपने फोन के Google उपयोगकर्ताओं को दिखा रहा है, बिना सक्षम किए)।


मैं थान को कहां सक्षम करूं?
अहमद अलबरोदी

@AhmedAlbarody आपके फायरबेस कंसोल में - प्रमाणीकरण चुनें और फिर आपको उन सेवाओं को सक्षम करने की आवश्यकता है जिन्हें आप उपयोग करना चाहते हैं।
लड़का

1

सुनिश्चित करें कि SHA-1 में एक डीबग कुंजी होनी चाहिए जो केवल आपके सिस्टम में उत्पन्न होती है, और उसके बाद google-services.json फ़ाइल को अपने प्रोजेक्ट में डाउनलोड करें


1

सुनिश्चित करें कि आपने जोड़ा है

 dependencies {
    classpath 'com.google.gms:google-services:4.2.0'
}

in android / build.gradle और

apply plugin: 'com.google.gms.google-services'

में एंड्रॉयड / ऐप्स / build.gradle । इसके अलावा, सुनिश्चित करें कि Android / app / build.gradle में ApplicationId वही है जो AndroidManifest.xml में आपके पैकेज का नाम है (आप कभी-कभी पैकेज का नाम बदलने के बाद ApplicationId को बदलना भूल सकते हैं)। मैनिफ़ेस्ट फ़ाइल में यह एप्लिकेशन अनुपात या पैकेज का नाम आपके एंड्रॉइड पैकेज का नाम फायरबेस ऐप में होना चाहिए।


1

आपको उपयोग किए जाने वाले प्रत्येक पीसी के लिए SHA-1 और SHA-256 उत्पन्न करना चाहिए। और उन सभी को फायरबेस प्रोजेक्ट सेटिंग्स में जोड़ें।

और आपको OAuth Consent टैब में फॉर्म भरना चाहिए ।


1

यदि यह पहले काम करता था, लेकिन अब एक अलग पीसी का उपयोग कर रहा है, तो आपको उस पीसी द्वारा फायरबेस में अपनी परियोजना में उत्पन्न नए SHA-1 / SHA-256 फिंगरप्रिंट जोड़ने की आवश्यकता होगी । ऐसा करने पर एक अच्छा कदम-दर-चरण उदाहरण: https://stackoverflow.com/a/56091158/53656164


1

हालाँकि, ऊपर दिए गए उत्तर सही हैं, लेकिन फिर भी, यदि आप समस्या कर रहे हैं, तो ऐप / build.gradle के साइनिंग कॉनफिग {} अनुभाग को सत्यापित करना न भूलें। इसमें किसी भी अवांछित कीस्टोर फ़ाइल का संदर्भ नहीं होना चाहिए, जो कि google-services.json और कीस्टोर के साथ बेमेल का कारण हो सकता है।


1

मेरे मामले में यह एक मूर्खतापूर्ण गलती थी, सुनिश्चित करें कि आपका एप्लिकेशन फायरबेस में: जैसे कि 'com.example.appname' आपके ऐप / src / build.gradle फ़ाइल में defaultIcfig {} के तहत ApplicationId के साथ बिल्कुल मेल खाता है। वर्तनी की कोई त्रुटि नहीं। , कोई ऊपरी मामला, निचला मामला पत्र संघर्ष नहीं करता। मेरे मामले में एक पत्र ऊपरी मामला था जिसने सभी समस्याओं का कारण बना।


0

में एंड्रॉयड / ऐप्स / build.gradle मैं से निर्भरता बदल com.android.tools.build:gradle:3.1.3 / com.google.gms: गूगल-सेवाएं: 3.2.1 के लिए com.android.tools.build:gradle : 3.2.1 / com.google.gms: Google- सेवाएं: 4.2.0 । और इसने काम किया।


0

फायरबेस में ऐप को रजिस्टर करते समय मैंने अपने एप्लिकेशन को कुछ इस तरह से बदल दिया जो मेरे ऐप के अनुकूल है। हालाँकि, जब मैंने डिबगर (बेशक, ApplicationId में बदलाव के कारण) चलाया तो मेरे फोन पर एक दूसरा स्पंदन ऐप इंस्टॉल हो गया। तो मेरी स्थिति के लिए काम करने वाली बात, removeइंस्टॉलेशन और re-installऐप दोनों के लिए थी ।


0

मैंने ऊपर सब कुछ करने की कोशिश की और कुछ भी काम नहीं किया। मेरी गलती यह थी कि मेरे ड्राइव में कई एंड्रॉइड स्टूडियो संस्करण फ़ोल्डर थे और मैं फायरबेस सेटिंग्स में गलत SHA1 कुंजी खिला रहा था।


0

एक appbundle (जो Google Play और Flutter द्वारा अनुशंसित है) का निर्माण इस त्रुटि का कारण होगा। एक एपीके का निर्माण यह हल करेगा।

मुद्दा 58194425 देखें


0

मेरे पास समस्या थी और इसे हल करने में 5 घंटे लगे। मुझे याद है कि मैंने कहीं पढ़ा है कि एपीआई अपवाद 10 का मतलब है कि उंगलियों के निशान के साथ एक मुद्दा है। तो, यह फायरस्टेज में कीस्टोर या मिसकॉन्फ़िगरेशन होना था। आखिरकार, यह कीस्टॉर था। मुझे अभी भी यकीन नहीं है कि यह क्यों काम किया लेकिन यह वही है जो मैंने किया है, वैसे, मैं विंडोज 10 का उपयोग कर रहा हूं:

1.) सुनिश्चित करें कि फ़ाइल पर android / build.gradle मैं निम्नलिखित था:

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}

2.) मैंने इन दो पंक्तियों को android / gradle.properties फ़ाइल में जोड़ा

android.useAndroidX=true
android.enableJetifier=true

3.) C: \ Users \ YourUSER \ .android पर नेविगेट किया गया और निम्नलिखित को हटा दिया गया:

debug.keystore
debug.keystore.lock

4.) टर्मिनल को व्यवस्थापक के रूप में खोलें, और इस निर्देशिका में डीबग कीस्टोर को उत्पन्न किया।

$ keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000

उंगलियों के निशान प्राप्त:

$ keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android 

5.) फायरबेस में विन्यास में SHA1 उंगलियों के निशान जोड़े

यह मेरे अंत पर था। मुझे उम्मीद है कि यह किसी की मदद करता है।


0

कृपया सुनिश्चित करें कि फायरबस कंसोल पर आप जो हस्ताक्षर कर रहे हैं, वह वैसा ही है जैसा कि साइन इन करने के लिए प्रयोग किया जाता है। विकास में रहते हुए भी एप्लिकेशन / बिल्ड.gradle फ़ाइल में डिबग कॉन्फ़िगरेशन। मिसमैच त्रुटि का कारण बनता है।


0

इसने मेरे लिए इसे ठीक कर दिया। मैंने एक नए प्रोजेक्ट में एक छोटा रिफ्लेक्टर किया। मुझे लगा कि मैं अपनी पुरानी google-services.jsonफाइल का उपयोग कर रहा हूं लेकिन मैं गलत फाइल का उपयोग कर रहा हूं। मैंने इस सरल त्रुटि को महसूस करने से पहले दो दिनों तक बाकी सब कोशिश की।


0

इससे मुझे मदद मिली (SHA1 आयात करने में एक समस्या थी)

cd .android मैंने SHA1 कुंजी का उपयोग किया और कॉपी किया और फायरबेस, प्रोजेक्ट कॉन्फ़िगरेशन, एंड्रॉइड एप्लिकेशन, SHA प्रमाणपत्र में चिपकाया गया

keytool -list -v -Stystore debug.keystore -alias androiddebugkey -storepass android -keypass android

और मैंने इसके साथ एक और कुंजी भी बनाई:

keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkeytwo -keypass android -keyalg RSA -keysize 2048 -validity 10000

और एक और SHA कुंजी लेने के लिए इसका उपयोग किया:

keytool -list -v -Stystore debug.keystore -alias androiddebugkeytwo -storepass android -keypass android

मैंने अपने फायरबेस प्रोजेक्ट में एक और कुंजी जोड़कर कॉपी और पेस्ट किया।

google-services.json को भी डाउनलोड किया और फ्लैटर प्रोजेक्ट के अंदर Android / ऐप में पेस्ट किया।

यह ठीक से काम करता है, मेरा pubspec.yml चित्रण:

  http: ^0.12.0+2
  cupertino_icons: ^0.1.2
  firebase_auth: ^0.15.1
  firebase_analytics: ^5.0.6
  firebase_core: ^0.4.2+1
  google_sign_in: ^4.0.14

मेरा कोड:

    Widget _signInButton() {
    return OutlineButton(
      splashColor: Colors.grey,
      onPressed: () async {
        await signInWithGoogle()
            .then((FirebaseUser user) => print(user.displayName))
            .catchError((e) => print(e));

      },

    );
  }

import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';

final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn = new GoogleSignIn();

Future<FirebaseUser> signInWithGoogle() async {
  final GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
  final GoogleSignInAuthentication googleSignInAuthentication =
      await googleSignInAccount.authentication;

  final AuthCredential credential = GoogleAuthProvider.getCredential(
    accessToken: googleSignInAuthentication.accessToken,
    idToken: googleSignInAuthentication.idToken,
  );

  final AuthResult authResult = await _auth.signInWithCredential(credential);
  final FirebaseUser user = authResult.user;
  print(user.displayName.toString());
  assert(!user.isAnonymous);
  assert(await user.getIdToken() != null);

  final FirebaseUser currentUser = await _auth.currentUser();
  assert(user.uid == currentUser.uid);

  return user;
}

void signOutGoogle() async {
  await googleSignIn.signOut();

  print("User Sign Out");
}

मुझे इस काम की उम्मीद है।


0

कृपया सुनिश्चित करें कि आप ऐसा करते हैं:

  • अपने फायरबेस कंसोल से गूगल साइन को सक्षम करें

  • अपने Android फायरबेस एप्लिकेशन को सेटअप करते समय अपना SHA-1 डालें

  • उसी खाते से साइन इन करने के बाद, जिसके साथ आपने Firebase प्रोजेक्ट बनाया है। आपने इस कंसोल में भरें https://console.developers.google.com/apis/credentials/consent

0

मुझे यह त्रुटि मिलती है: PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 7 :, null) हो सकता है कि समाधान आपके लिए अच्छा हो।

और मुझे पता है कि मेरा डिबग डिवाइस (एंड्रॉइड डीबग मोड) इंटरनेट से जुड़ा नहीं है। मुझे लगता है कि प्रमाणीकरण विफल हो गया है इसलिए विधि शून्य या उपयोगकर्ता के बराबर है।

लौटे चर का उपयोग करने से पहले जाँच करनी चाहिए।


मुझे आपके उत्तर का पालन करना मुश्किल लगता है: क्या आप अंग्रेजी का उपयोग करके सहायता प्राप्त कर सकते हैं ( मेरी पहली भाषा नहीं)?
ग्रेबर्ड

0

मेरे मामले में, किसी भी उत्तर ने समस्या हल नहीं की। कुछ सोच के बाद, मुझे एहसास हुआ कि कुछ समय पहले मैंने अपने आवेदन का पैकेज नाम बदल दिया है । यदि यह आपका मामला है, तो आपको बस अपने नए पैकेज के नाम के साथ अपने फायरबेस प्रोजेक्ट के अंदर एक और एप्लिकेशन बनाना चाहिए और फिर से google-services.jpg फ़ाइल डाउनलोड करनी चाहिए।


0

यदि आपका जारी किया गया ऐप ठीक से काम नहीं कर रहा है, और आप Google Play साइनिंग का उपयोग कर रहे हैं, तो अपने प्ले स्टोर खाते से SHA की प्रतिलिपि बनाएँ , आपकी स्थानीय कुंजी से काम नहीं चलेगा यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.