Google साइन इन त्रुटि 12500


106

मैं Google साइन इन को अपने ऐप में एकीकृत करने का प्रयास कर रहा हूं। मेरे पास एक बैक-एंड सर्वर नहीं है, मैं बस अपने ऐप पर Google खाते पर लॉग इन का विवरण प्राप्त कर रहा हूं।

मैंने पहली बार Google साइन इन उदाहरण का उपयोग करके इसे आज़माया था लेकिन मुझे एक त्रुटि मिली (नीचे दिए गए स्टैकट्रेस को प्रिंट करने के अलावा कोई कोड परिवर्तन नहीं किया गया)। मैंने अभी-अभी SignInActivity का उदाहरण दिया था क्योंकि मेरे पास बैक-एंड सर्वर नहीं है।

 Exception com.google.android.gms.common.api.ApiException: 12500: 
 at com.google.android.gms.common.internal.zzb.zzz(Unknown Source)
 at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
 at com.ewise.android.api.MainActivity.onActivityResult(SignInActivity.java:89)     at android.app.Activity.dispatchActivityResult(Activity.java:7010)
 at android.app.ActivityThread.deliverResults(ActivityThread.java:4187)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:4234)
 at android.app.ActivityThread.-wrap20(ActivityThread.java)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1584)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6316)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

कोड

 public class SignInActivity extends AppCompatActivity implements
         View.OnClickListener {

     private static final String TAG = "SignInActivity";
     private static final int RC_SIGN_IN = 9001;

     private GoogleSignInClient mGoogleSignInClient;
     private TextView mStatusTextView;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         // Views
         mStatusTextView = findViewById(R.id.status);

         // Button listeners
         findViewById(R.id.sign_in_button).setOnClickListener(this);
         findViewById(R.id.sign_out_button).setOnClickListener(this);
         findViewById(R.id.disconnect_button).setOnClickListener(this);

         // [START configure_signin]
         // Configure sign-in to request the user's ID, email address, and basic
         // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                 .requestEmail()
                 .build();
         // [END configure_signin]

         // [START build_client]
         // Build a GoogleSignInClient with the options specified by gso.
         mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
         // [END build_client]

         // [START customize_button]
         // Set the dimensions of the sign-in button.
         SignInButton signInButton = findViewById(R.id.sign_in_button);
         signInButton.setSize(SignInButton.SIZE_STANDARD);
         signInButton.setColorScheme(SignInButton.COLOR_LIGHT);
         // [END customize_button]
     }

     @Override
     public void onStart() {
         super.onStart();

         // [START on_start_sign_in]
         // Check for existing Google Sign In account, if the user is already signed in
         // the GoogleSignInAccount will be non-null.
         GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
         updateUI(account);
         // [END on_start_sign_in]
     }

     // [START onActivityResult]
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);

         // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
         if (requestCode == RC_SIGN_IN) {
             // The Task returned from this call is always completed, no need to attach
             // a listener.
             Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
             handleSignInResult(task);
         }
     }
     // [END onActivityResult]

     // [START handleSignInResult]
     private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
         try {
             GoogleSignInAccount account = completedTask.getResult(ApiException.class);

             // Signed in successfully, show authenticated UI.
             updateUI(account);
         } catch (ApiException e) {
             // The ApiException status code indicates the detailed failure reason.
             // Please refer to the GoogleSignInStatusCodes class reference for more information.
             Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
             e.printStackTrace();
             updateUI(null);
         }
     }
     // [END handleSignInResult]

     // [START signIn]
     private void signIn() {
         Intent signInIntent = mGoogleSignInClient.getSignInIntent();
         startActivityForResult(signInIntent, RC_SIGN_IN);
     }
     // [END signIn]

     // [START signOut]
     private void signOut() {
         mGoogleSignInClient.signOut()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END signOut]

     // [START revokeAccess]
     private void revokeAccess() {
         mGoogleSignInClient.revokeAccess()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END revokeAccess]

     private void updateUI(@Nullable GoogleSignInAccount account) {
         if (account != null) {
             mStatusTextView.setText(getString(R.string.signed_in_fmt, account.getDisplayName()));

             findViewById(R.id.sign_in_button).setVisibility(View.GONE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
         } else {
             mStatusTextView.setText(R.string.signed_out);

             findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
         }
     }

     @Override
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.sign_in_button:
                 signIn();
                 break;
             case R.id.sign_out_button:
                 signOut();
                 break;
             case R.id.disconnect_button:
                 revokeAccess();
                 break;
         }
     }
  }

मैंने जो पढ़ा है, उससे यह समस्या SHA1 जेनरेशन को हो सकती है ।

मैंने पूरी गाइड का पालन ​​किया लेकिन जाहिर तौर पर यह काम नहीं कर रहा है।

मैंने ढाल हस्ताक्षर से SHA1 की नकल की

Variant: debug
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: release
Config: none
----------
Variant: debugAndroidTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: debugUnitTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047

इसका संभावित कारण क्या हो सकता है?

धन्यवाद

पुनश्च यह एक संभावित कारण हो सकता है?

Google Play services out of date.  Requires 11720000 but found 10932470

अरे क्या आप कृपया अपना कोड
दिलीप

Hi @Dilip I का शाब्दिक उपयोग यह है :) github.com/googlesamples/google-services/tree/master/android/… । इसे वैसे भी अपडेट करें
हारून

1
तो क्या होता है आपको वही त्रुटि मिलती है या कुछ और होता है। एक बात कृपया SHA1 को मैन्युअल रूप से एक बार करें और अपने APP के खिलाफ डेवलपर कंसोल पर रखें और पैकेज का नाम चेक करें और google-services.json फ़ाइल डाउनलोड करें और ऐप स्तर पर रखें।
दिलीप

हां @ दिलीप मुझे वही त्रुटि मिलती है। मैंने चेक पैकेज नाम पार कर लिया। मैंने एक और कीस्टोर का उपयोग करने की भी कोशिश की लेकिन परिणाम समान है।
आरोन

आपको अपनी API कुंजी प्राप्त करने के लिए कोड परिवर्तन करने की आवश्यकता है । और हाँ, आपको प्ले सेवाओं को अपडेट करना चाहिए
OneCricketeer

जवाबों:


37

बस अपनी Google Play सेवाओं को नवीनतम संस्करण (या इस मामले में 11720000) में अपडेट करें। यदि आप AVD, Nexus 5 और 5X चित्रों का उपयोग कर रहे हैं तो Google Play का समर्थन करें। एक बार एमुलेटर ऊपर और चल रहा है, तो विस्तारित नियंत्रण मेनू> Google Play पर जाएं फिर अपडेट करें।


सैमसंग उपकरणों पर इसे कैसे करें?
पिंकेश दरजी

7
मेरे मामले में यह मुद्दा नहीं है। Google Play सेवाएं पहले से ही अद्यतित हैं।
एडम हर्वित्ज

@ परियोजना और गोपनीयता लिंक के बारे में zub0r के समाधान को सही उत्तर के रूप में स्वीकार किया जाना चाहिए।
एडम हर्विट्ज

कृपया एमुलेटर पर या विजुअल स्टूडियो पर विस्तारित नियंत्रण मेनू कहां है?
जॉर्ज उडोसन

122

त्रुटि प्लेटफ़ॉर्म अपवाद (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, null)

यह 12500 त्रुटि परियोजना सेटिंग्स में अपनी परियोजना के लिए एक समर्थन ईमेल पता जोड़कर हल किया जा सकता है लिंक खोलें https://console.firebase.google.com/

अपनी परियोजना का चयन करें और सेटिंग्स टैब खोलें।

एक मान्य सहायता ईमेल प्रदान करें और अब अपना आवेदन पुनः आरंभ करें।

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


10
धन्यवाद दोस्त! यह त्रुटि काफी गूढ़ है, इसका मतलब यह है कि यहां दिए गए किसी भी सामान का उल्लेख किया जा सकता है। मेरी समस्या यह थी :(
बिल्ला

3
मैंने डेवलपर कंसोल डेवलपर्स में वर्णित सब कुछ किया था। UIidentity/sign-in/android/sign-in और एक दिन खर्च करने के बाद SHA-1 फिंगरप्रिंट डालने की कोशिश कर रहा था और यह सब समस्या थी। आपने मदद की। आपका बहुत बहुत धन्यवाद!
कक्षा Android

अपने प्रोजेक्ट @RohitSingh के लिए SHA1 कुंजी जोड़ने का प्रयास करें
Maddu Swaroop

1
@MadduSwaroop अगर केवल दो बार उखाड़ने का कोई तरीका था ... धन्यवाद सर
लेफ्टी

1
आपने मेरा दिन बचाया
हाउससम

46

जाँच करें कि क्या SHA-1 फ़िंगरप्रिंट फ़ायरबेस प्रोजेक्ट सेटिंग्स में जोड़े जाते हैं। यदि नहीं, तो SHA-1 फिंगरप्रिंट का उपयोग करें

https://developers.google.com/android/guides/client-auth

इसके अलावा, SHA-1 फ़िंगरप्रिंट रिलीज़ कुंजी का उपयोग करके खोजें

keytool -list -v -keystore <keystore path>

<keystore path>कुंजी स्टोर के पथ के साथ निकालें ।

फिर दोनों SHA-1 उंगलियों के निशान को फायरबेस प्रोजेक्ट सेटिंग्स में जोड़ें।

NB: Google- services.json को अद्यतन किए गए google-services.json के साथ नए फिंगरप्रिंट के साथ बदलना न भूलें। मैं उस पर दो दिन खो दिया।

डिबग करते समय

एंड्रॉइड स्टूडियो स्वचालित रूप ~/.android/debug.keystore से पहले डिबग बिल्ड पर उत्पन्न होता है और ऐप पर हस्ताक्षर करने के लिए इसका उपयोग करता है।

SHA-1 रन (पासवर्ड android) पाने के लिए ( doc ):

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

इस SHA-1एप्लिकेशन सेटिंग में जोड़ा जाना चाहिए पर firebaseक्षमताओं में गूगल पर हस्ताक्षर के उपयोग की अनुमति के लिए डीबग बिल्ड का परीक्षण करते हुए।


2
कैसे आप निश्चित हैं कि वह फायरबेस का उपयोग कर रहा है?
पॉलजी

यह अनुमान लगाया (कोड और सर्वर रहित में समानता)। फायरबेस प्रोजेक्ट जीसीपी कंसोल से भी जुड़ा है। हम GCP क्रेडेंशियल में फिंगरप्रिंट भी बदल सकते हैं।
नियास नज़र

के साथ एक ही त्रुटि, लेकिन मेरे मामले में यह फायरबेस से संबंधित नहीं था (मैं इसका उपयोग नहीं कर रहा हूं)।
डीएच

पर जाएं console.developers.google.com/apis/credentials .Add नई क्रेडेंशियल (ओ प्रमाणीकरण क्लाइंट) एस एच ऐ कुंजी के साथ। (हमारे फायरबेस परियोजनाओं के लिए फायरबेस स्वचालित रूप से ऐसा करता है)
नियास नज़र

Google-services.json फ़ाइल आपके प्रोजेक्ट के अंदर ऐप निर्देशिका में मिल सकती है। (फाइंडर / फाइल एक्सप्लोरर के माध्यम से जाना)
मेहुल टंडले

43

 12500 त्रुटि के लिए आपको केवल फायरबेस की सेटिंग में सपोर्ट gmail जोड़ने की आवश्यकता है और त्रुटि के लिए 10 फायरबस कंसोल में ssh फ़िंगरप्रिंट जोड़ें जैसा कि आप चित्र में देखते हैं


अच्छा और सीधे आगे जवाब, बस मेरे जीमेल खाते को कॉन्फ़िगर किया है और यह बाकी काम करता है
Ajeett

43

Google SignIn के काम करने के लिए ईमेल और सभी प्रोजेक्ट और गोपनीयता लिंक आवश्यक हैं, अन्यथा यह 12500 तक पहुंच जाता है।

इसे "OAuth सहमति स्क्रीन" नाम के दूसरे टैब के नीचे https://console.developers.google.com/apis/credentials पर सेट करें - आपको तीन लिंक मिलेंगे जिन्हें कॉन्फ़िगर करने की आवश्यकता है।

यह Firebase गाइड में कहीं भी उल्लेख नहीं है।


3
धन्यवाद, यह मेरे लिए काम कर रहा है। मैंने समस्या को हल करने के लिए लगभग पूरे दिन बर्बाद कर दिए हैं
कृष्ण कुमार शर्मा

2
धन्यवाद, मैंने सिर्फ एक 'अधिकृत डोमेन' को गोपनीयता लिंक और सब कुछ काम करने के लिए जोड़ा है। आपने मुझे कुछ घंटों के परीक्षण और त्रुटि से बचाया me
कोको

यह उत्तर स्वीकार किया जाना चाहिए। मैं बिना किसी सफलता के उस 2 दिनों से संघर्ष कर रहा हूं। Google को गाइड अपडेट करना चाहिए, क्योंकि अब उनका प्रलेखन भ्रामक है, उनका गाइड कभी काम नहीं करेगा और त्रुटि कोड कुछ भी नहीं बताता है
user1209216

1
गोपनीयता लिंक कहां जोड़ें
शिहाब उद्दीन

4
"OAuth सहमति स्क्रीन" नाम के दूसरे टैब पर - फॉर्म के निचले भाग पर आपको तीन लिंक मिले हैं
zub0r

21

Https://console.developers.google.com/apis/credentials पर OAuth सहमति स्क्रीन को अपडेट करने का प्रयास करें


3
मुझे समर्थन ईमेल जोड़ना था और फिर इसने काम करना शुरू कर दिया। यह हड़बड़ाहट में था।
'13:

इसके अलावा सभी परियोजना और गोपनीयता लिंक आवश्यक हैं, अन्यथा यह 12500 फेंकता है। इसका कहीं भी उल्लेख नहीं किया गया है।
जुबेर

@ zub0r लिंक आवश्यक नहीं है। स्रोत: मैंने अभी उनके बिना किया।
ईशान

18

मैं थोड़ी देर के लिए इससे चिपक गया था।

सुनिश्चित करें कि ये चरण किए गए हैं-

  • सही SHA कुंजी Firebase कंसोल पर सहेजी गई है।
  • नवीनतम google-service.json डाउनलोड करें
  • और अंतिम और सबसे महत्वपूर्ण सेव करें OAuth google api में क्रेडेंशियल्स के तहत सहमति, OAuth स्क्रीन यह पता लगाने में लंबा समय लगा। और इसके बाद ठीक काम किया।

6
कुंआ। यह यहां 2019 के लिए स्वीकृत उत्तर होना चाहिए। google अजीब तरीके से OAuth सहमति के
mochadwi

1
उह, इसके लिए एक और वोट। पूरी तरह से मेरी अस्पष्ट समस्या थी।
ईशान

12

लगता है कि आपका SHA1 Google play store द्वारा अधिलेखित है। अपने Google play store में लॉन्च करें, लॉन्च पैनल, ऐप साइनिंग के तहत, देखें कि क्या Google play में एक अतिरिक्त SHA1 जोड़ा गया है।

और उस SHA1 को कॉपी करें, अपने संबंधित स्थान पर जोड़ें, यह काम करेगा।


1
हे भगवान! इस टिप के लिए धन्यवाद! ऐप बंडलों ने अपना स्वयं का SHA1 बनाया, इसलिए स्थानीय रूप से उपयोग किए जाने वाले रिलीज़ कुंजी (एपीके उत्पन्न करते समय) अब सही नहीं है।
जिया त्से

यह अब तक का सबसे भ्रमित करने वाला वर्कफ़्लो है। लेकिन टिप के लिए धन्यवाद
DarkNeuron

5

यदि कोई समान समस्या है, तो यदि आप कस्टम स्कोप जोड़ रहे हैं, तो सुनिश्चित करें कि यह एक मान्य गुंजाइश है। मेरे मामले में, मैंने फेसबुक स्कोप को Google स्कोप के साथ मिलाया और मुझे इसका पता लगाने में थोड़ा समय लगा!


5

मैं फायरबेस प्रमाणीकरण का उपयोग कर रहा हूं। मेरे SHA-1 को सही ढंग से इंगित किया गया था, क्लाइंट आईडी भी सही था लेकिन मैं अभी भी 12500 प्राप्त कर रहा था।

यह पता चला कि मेरी समस्या यह थी कि मैंने अपनी परियोजना सेटिंग्स में समर्थन ईमेल का संकेत नहीं दिया था । (सेटिंग्स -> सामान्य टैब -> आपकी परियोजना (सार्वजनिक सेटिंग्स) अनुभाग)।


3
मेरे साथ भी वही हुआ। Google की सेवाओं के साथ गंभीर प्रलेखन मुद्दे हैं। काश वे ऐसे मुद्दों का दस्तावेजीकरण करते या कम से कम उपयोगकर्ता के अनुकूल त्रुटि दिखाते।
आशीष-गोयल

4

फायरबेस कंसोल में अपने प्रोजेक्ट पर जाएं, प्रोजेक्ट सेटिंग्स खोलें, वहां अपने एसएचए प्रमाणपत्र उंगलियों के निशान जोड़ें। अपडेट की गई google-services.json फ़ाइल डाउनलोड करें और इसे अपने प्रोजेक्ट्स ऐप फ़ोल्डर में जोड़ें।

इसने मेरे लिए काम किया।

Firebase कंसोल स्क्रीनशॉट


3

मुझे लगता है कि गलती गलत SHA1 से हुई। कृपया यह न भूलें कि SHA1 Android स्टूडियो में रिलीज़ और डीबग मोड के बीच भिन्न है। SHA1 प्राप्त करने के लिए keytool का उपयोग करने के बजाय, आप ग्रैडल प्रोजेक्ट का उपयोग कर सकते हैं -> कार्य -> ​​कार्य -> ​​android -> android स्टूडियो में साइन अप करें (मेनू द्वारा इसे खोल सकते हैं -> Toolwindow -> gradle) रिलीज़ होने के लिए और SHA1 को डीबग करने के लिए। उसके बाद, आसान काम करने के लिए, आपको Google क्लाउड कंसोल पर दो SHA1 के साथ 2 अलग क्रेडेंशियल्स बनाने की आवश्यकता है (google सिर्फ 1 SHA1 रिलीज़ का उपयोग करके बनाने का निर्देश देता है, जब हम विकसित करते हैं तो यह काम नहीं करेगा क्योंकि यह डीबग SHA1 का उपयोग करता है)।


3

पहले सुनिश्चित करें कि आपने अपना एप्लिकेशन Google डेवलपर्स कंसोल में पंजीकृत किया है

सुनिश्चित करें कि आपके पास अपने Firebase एप्लिकेशन में दोनों कुंजियाँ debugऔर releaseकुंजियाँ हैं। अगर यह त्रुटि उत्पादन में दिखाई देती है, तो अपने SHA-1 release keyफायर आधार ऐप में जोड़ें । यदि यह विकास में प्रकट होता है, तो अपने को जोड़ें SHA-1 debug key

जहां SHA-1 फिंगर प्रिंट जोड़ना है

डिबग / रिलीज़ कुंजी प्राप्त करना:

keytool -exportcert -list -v -alias [your alias] -keystore [path/to/debug or release.keystore]

अपडेट google-services.jsonको अपने ऐप में डाउनलोड करना सुनिश्चित करें ।


मैं GoogleSignInResult.getSuccess () गलत और 12500 का एक कोड वापस करने में विफल रहा था। अंत में, यह था कि किसी और ने मेरे OAuth को अपने SHA1 के बजाय मेरी डिबग कुंजी के साथ सेटअप किया था। इसने इसे ठीक कर दिया।
लापरवाह

@Reckless मुझे खुशी है कि इससे मुझे मदद मिली!
डेन्

2

मेरे लिए समस्या मेरे डिबग-कॉन्फ़िगर किए गए एप्लिकेशन के साथ एक 'रिलीज़' ClientID का उपयोग कर रही थी। सुनिश्चित करें कि आपके पास क्रमशः SHA-1 का उपयोग करके एक रिलीज़ और एक डीबग कुंजियाँ हैं।


2

आप आ रहे हैं यहां से स्पंदन : इस कोने मामलों हम यहाँ प्रलेखन के अनुसार ठीक करने के लिए है में से एक है: https://pub.dev/packages/google_sign_in यहां छवि विवरण दर्ज करें

  • पर जाएं गूगल API एवं Sevices
  • उस एप्लिकेशन को चुनें जिसे आप Google साइन इन को लागू करना चाहते हैं।
  • इसके बाद Enable APIS and Services पर क्लिक करें

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

  • फिर Google Peoples API खोजें

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

  • Google लोग API कार्ड खोलें और सक्षम करें पर क्लिक करें, आपके एप्लिकेशन को समस्या से छुटकारा मिल सकता है।

2

जब आपका ऐप बैकएंड सर्वर से प्रमाणित होता है या आपके बैकएंड सर्वर से Google API एक्सेस करता है, तो आपको उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी तक पहुँचने के लिए OAuth 2.0 क्लाइंट आईडी जो आपके सर्वर के लिए अनुरोध किया गया था, जब आप GoogleSignIncomptions ऑब्जेक्ट्स का निर्माण करते हैं, तो मुझे अनुरोध करें। । इसके अलावा, एपीआई कंसोल में क्रेडेंशियल पेज में पाए गए OAuth सहमति स्क्रीन में समर्थन ईमेल सबमिट करना न भूलें।


1

यह भी हो सकता है कि कॉर्डोवा संकलक उचित कीस्टोर फ़ाइल खोजने में असमर्थ हो।



समाधान: निष्पादित करने से पहले हस्ताक्षर गुणों को ionic cordova build androidनिर्दिष्ट करें

चरण -1 : डीबग कीस्टोर फ़ाइल जनरेट करें

आदेश निष्पादित करें

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

पासवर्ड का उपयोग करें: android

चरण -2: कुंजीस्टोर फाइल कॉपी ( debug.keystoreसे) ~/.androidके लिए platform/androidअपने वर्तमान परियोजना की निर्देशिका

चरण -3: निर्देशिका में रिलीज़- signing.properties नामक फ़ाइल बनाएँplatform/android

चरण -4: फ़ाइल में सामग्री जोड़ें

storeFile=debug.keystore
keyAlias=androiddebugkey
storePassword=android
keyPassword=android

नोट: ये डिफ़ॉल्ट मान हैं। यदि आपने कस्टम उपनाम और पासवर्ड प्रदान किया है तो उनके अनुसार उपयोग करें।

चरण -5: अब निर्माण करेंionic cordova build android


1

मैंने अपने प्रोजेक्ट को दूसरे कंप्यूटर (अलग एंड्रॉइड स्टूडियो) पर खोलने के बाद उसी समस्या का अनुभव किया। मेरे मामले में, मैंने इसे फायरबेस असिस्टेंट का उपयोग करके हल किया, जिसका उपयोग मैंने फायरबेस को शुरू में सेटअप करने के लिए किया था। फायरबेस सहायक (उपकरण> फायरबेस) खोला और प्रमाणीकरण> कनेक्ट का चयन किया। इसने प्रोजेक्ट को फायरबेस में फिर से जोड़ दिया और कॉन्फ़िगरेशन को अपडेट किया


1

मैं 2 सप्ताह से Google लॉगिन समस्या में फंसा हुआ था, अंत में इसे अच्छी तरह से हल कर दिया। मुझे इसका कारण बताएं। मुद्दा फायरबेस से संबंधित था। फायरबेस में, उन्होंने वैकल्पिक रूप में "समर्थन ईमेल" क्षेत्र का उल्लेख किया। लेकिन एक बार जब मैंने इसे (आपके किसी भी व्यक्तिगत ईमेल) को जोड़ा, तो समस्या हल हो गई और मुझे प्रतिक्रिया मिली। यदि आपकी त्रुटि 12501 के रूप में हो रही है, तो यह आपके Google खाते की सेटिंग से संबंधित है।


1

मैं थोड़ी देर के लिए इससे चिपक गया था।

सुनिश्चित करें कि ये चरण किए गए हैं-

Correct SHA key is saved on Firebase Console.
Valid reversed client id.
from fcm console=>select app=>from authentication=>enable google sign-in method

0

मेरे मामले में, यह गलत Google क्लाइंट आईडी के कारण है। मैं अपनी कुंजी google-services.json( oauth_clientवस्तु के तहत ) में सूचीबद्ध कुंजी में बदलता हूं


0

सुनिश्चित करें कि आपके पास निम्नलिखित चीजें ठीक से स्थापित हैं:

  1. अपने Google प्रोजेक्ट में क्लाइंट आईडी बनाएं।
  2. उस क्लाइंट आईडी के लिए उचित SHA-1 कुंजी प्रदान करें। (डिबग / रिलीज़)
  3. उस क्लाइंट आईडी के लिए उचित पैकेज नाम प्रदान करें।
  4. सुनिश्चित करें कि आपने क्लाइंट आईडी जनरेट किया है strings.xml, google-services.jsonया credentials.jsonफ़ाइल।

0

https://developers.google.com/identity/sign-in/android/sign-in इस एपीआई डॉक्यूमेंट को फॉलो करें लेकिन ध्यान रखें कि WEB_CLIENT_ID के अंदर क्लाइंट आईडी की वैल्यू का उपयोग करें जो कि google-services.json फ़ाइल के अंदर उत्पन्न होती है।

class MainActivity : AppCompatActivity(), GoogleApiClient.OnConnectionFailedListener {
private val TAG = "JSAGoogleSignIn"
private val REQUEST_CODE_SIGN_IN = 1234
private val WEB_CLIENT_ID = "354298333018-XXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com"
private var mAuth: FirebaseAuth? = null

private var mGoogleApiClient: GoogleApiClient? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var txt_register = findViewById<TextView>(R.id.txt_register)
    txt_register.setOnClickListener {
        var intent = Intent(this@MainActivity, RegisterActivity::class.java)
        finish()
        startActivity(intent)
    }
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(WEB_CLIENT_ID)
            .requestEmail()
            .build()
    mGoogleApiClient = GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build()

    mAuth = FirebaseAuth.getInstance()
    sign_in_button.setOnClickListener {
        val intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient)
        startActivityForResult(intent, REQUEST_CODE_SIGN_IN)
    }

}


override fun onConnectionFailed(p0: ConnectionResult) {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}


private fun updateUI(user: FirebaseUser?) {
    if (user != null) {
        Log.e("Email", "Value" + user.email)
    }

}

fun signIn() {

}

override fun onStart() {
    super.onStart()
    val currentUser = mAuth!!.currentUser
    updateUI(currentUser)
}

public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
    if (requestCode == REQUEST_CODE_SIGN_IN) {
        val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        if (result.isSuccess) {
            // successful -> authenticate with Firebase
            val account = result.signInAccount
            firebaseAuthWithGoogle(account!!)
        } else {
            // failed -> update UI
            updateUI(null)
            Toast.makeText(applicationContext, "SignIn: failed!" + result.status,
                    Toast.LENGTH_SHORT).show()
        }
    }
}

private fun firebaseAuthWithGoogle(acct: GoogleSignInAccount) {
    Log.e(TAG, "firebaseAuthWithGoogle():" + acct.id!!)

    val credential = GoogleAuthProvider.getCredential(acct.idToken, null)
    mAuth!!.signInWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success
                    Log.e(TAG, "signInWithCredential: Success!")
                    val user = mAuth!!.currentUser
                    updateUI(user)
                } else {
                    // Sign in fails
                    Log.w(TAG, "signInWithCredential: Failed!", task.exception)
                    Toast.makeText(applicationContext, "Authentication failed!",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }
}

0

मेरे मामले में, फायरबेस कंसोल में फिंगरप्रिंट जोड़ने के बाद, यह Google डेवलपर कंसोल द्वारा स्वचालित रूप से उठाया गया और उंगलियों के निशान दिखाए गए। लेकिन साइन इन नहीं किया। हर चरण को देखने के बाद, मुझे लगा कि Google ने मेरे मैनिफ़ेस्ट फ़ाइल पैकेज को इस तरह उलट दिया है com.xxxxxxxx.app। लेकिन यह वास्तव में app.xxxxxxxx.com, Google डेवलपर कंसोल में है। इसलिए मैंने नष्ट कर दिया ऑटो ने एक फिंगरप्रिंट बनाया और सही पैकेज नाम के साथ फिंगरप्रिंट जोड़ा। बूम !!। इसने काम कर दिया।



0

सुनिश्चित करें कि आपकी परियोजना में संख्यात्मक या किसी भी प्रकार का कोई विशेष वर्ण नहीं होना चाहिए (परियोजना का नाम com.google.testproject] के रूप में सरल होना चाहिए


यह कॉल प्रोजेक्ट पैकेज नाम नहीं प्रोजेक्ट का नाम है
b devloper

0

मेरे मामले में मैं एक गैर-उत्पादन ऐप पर काम कर रहा था, मुद्दा यह था कि फायरबेस कंसोल में एक परियोजना बनाते समय, फायरबैस और Google डेवलपर कंसोल से SHA-1 कुंजी को आगे और पीछे सिंक्रनाइज़ करने वाले मुद्दे थे। इसलिए, मैंने पहले Google डेवलपर कंसोल पर प्रोजेक्ट बनाने का फैसला किया, और फिर फायरबेस कंसोल पर एक नया प्रोजेक्ट बनाते समय इसे चुनें।

मैंने इसके लिए एक ट्यूटोरियल भी बनाया , जो आपकी मदद कर सकता है।


0

मेरे मामले में, मुद्दा यह था कि मेरे एमुलेटर में प्ले स्टोर नहीं था। मैंने विजुअल स्टूडियो के माध्यम से एमुलेटर (एपीआई 23 नाम दिया है) बनाया है, क्योंकि मैं Xamarin.Forms का उपयोग करके विकसित करता हूं, और विज़ुअल स्टूडियो के एंड्रॉइड डिवाइस मैनेजर में आप चुन सकते हैं कि आपके एमुलेटर में Google Play Store होना चाहिए।

एंड्रॉइड स्टूडियो के AVD के माध्यम से एक एमुलेटर बनाना था और यह सुनिश्चित करना था कि इसमें Play Store था:

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


0

मेरे मामले में, यह त्रुटि थी क्योंकि एंड्रॉइड ऑर्ट को वरिष्ठ टीम द्वारा हटा दिया गया था क्योंकि ऐसा लगता है कि बैकएंड प्रमाणीकरण में एंड्रॉइड कुंजी की कोई आवश्यकता नहीं है। तो google login में Android और Web दोनों ही क्लाइंट कीज़ की जरूरत होती है।


-1

इस विकल्प को आज़माएं:

keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test

यह पासवर्ड के लिए संकेत देता है और बस पासवर्ड दर्ज करता है। आप SHA1, MD5 फिंगरप्रिंट देख सकते हैं।

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

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