গুগল সাইন ইন ত্রুটি 12500


106

আমি আমার অ্যাপটিতে গুগল সাইন ইনকে সংহত করার চেষ্টা করছি। আমার কোনও ব্যাক-এন্ড সার্ভার নেই, আমি কেবলমাত্র আমার অ্যাপ্লিকেশনটিতে গুগল অ্যাকাউন্টে লগ ইন করা বিশদটি পাচ্ছি।

আমি প্রথমে গুগল সাইন ইন উদাহরণ ব্যবহার করে এটি চেষ্টা করেছিলাম তবে আমার একটি ত্রুটি হয়েছে (নীচে স্ট্যাকট্রেস প্রিন্ট করা ছাড়া কোনও কোড পরিবর্তন করা হয়নি)। আমি সাইন ইনঅ্যাক্টিভিটি উদাহরণটি ব্যবহার করেছি কারণ আমার কোনও ব্যাক-এন্ড সার্ভার নেই।

 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

আরে আপনি দয়া করে আপনার কোড পোস্ট করতে পারেন
দিলিপ

হাই @Dilip আমি আক্ষরিক এই :) ব্যবহৃত github.com/googlesamples/google-services/tree/master/android/... । যাইহোক এটি আপডেট হয়েছে
হারুন

1
সুতরাং কী ঘটেছিল আপনি একই ত্রুটি বা অন্য কিছু ঘটতে পারে thing কোনও জিনিস দয়া করে নিজেই আরও একবার সময় SHA1 করুন এবং আপনার অ্যাপ্লিকেশনটির বিরুদ্ধে বিকাশকারী কনসোলে রাখুন এবং প্যাকেজের নাম ক্রস করুন এবং গুগল-পরিষেবাদি.জসন ফাইল ডাউনলোড করুন এবং অ্যাপ্লিকেশন স্তরে রেখে দিন।
দিলীপ

হ্যাঁ @ দিলিপ আমি একই ত্রুটি পেয়েছি। আমি চেক করা প্যাকেজের নামটি অতিক্রম করেছি। এমনকি আমি অন্য কীস্টোর ব্যবহার করার চেষ্টা করেছি তবে ফলাফলটি একই।
হারুন

আপনার এপিআই কী পেতে আপনার কোড পরিবর্তন করতে হবে । এবং হ্যাঁ, আপনার প্লে পরিষেবাদি আপডেট করা উচিত
ওয়ান ক্রিকেটার

উত্তর:


37

কেবলমাত্র আপনার গুগল প্লে পরিষেবাগুলি সর্বশেষতম সংস্করণে (বা এই ক্ষেত্রে 11720000) আপডেট করুন। আপনি যদি এভিডি ব্যবহার করেন তবে নেক্সাস 5 এবং 5 এক্স চিত্রগুলি গুগল প্লে সমর্থন করে। এমুলেটরটি চালু হয়ে গেলে, প্রসারিত নিয়ন্ত্রণসমূহ মেনু> গুগল প্লে এ যান তারপরে আপডেট করুন।


স্যামসাং ডিভাইসে এটি কীভাবে করবেন?
পিঙ্কেশ দার্জি

7
এটি আমার ক্ষেত্রে ইস্যু নয়। গুগল প্লে পরিষেবাগুলি ইতিমধ্যে আপ টু ডেট।
অ্যাডাম হুরউইটজ

@ zub0r এর সমাধান সংক্রান্ত প্রকল্প এবং গোপনীয়তা লিংক সঠিক উত্তর হিসাবে গ্রহণ করা উচিত নয়।
অ্যাডাম হুরউইৎজ

অনুগ্রহ করে এমুলেটর বা ভিজ্যুয়াল স্টুডিওতে বর্ধিত নিয়ন্ত্রণ মেনুটি কোথায়?
জর্জ উদোসেন

121

ত্রুটি প্ল্যাটফর্মএক্সেপশন (সাইন_ইন_ফেইলড, com.google.android.gms.common.api.ApiException: 12500:, নাল)

প্রকল্পের সেটিংসে আপনার প্রকল্পে একটি সমর্থন ইমেল ঠিকানা যুক্ত করে এই 12500 ত্রুটিটি সমাধান করা যেতে পারে লিঙ্কটি খুলুন https://console.firebase.google.com/

আপনার প্রকল্প নির্বাচন করুন এবং সেটিংস ট্যাব খুলুন।

একটি বৈধ সমর্থন ইমেল সরবরাহ করুন এবং এখনই আপনার অ্যাপ্লিকেশন পুনরায় চালু করুন।

এখানে চিত্র বর্ণনা লিখুন


9
ধন্যবাদ মানুষ! এই ত্রুটিটি বেশ রহস্যজনক, এর অর্থ এখানে উত্তরগুলিতে উল্লিখিত যে কোনও স্টাফকে বোঝানো যেতে পারে। আমার সমস্যাটি এই ছিল :(
বিল্ডা

3
আমি ডেভেলপার কনসোল ডেভেলপারস জিআরএলসিটিভিটি / সাইন- ইন / অ্যান্ড্রয়েড / সাইন- ইন-তে উল্লিখিত সমস্ত কিছুই করেছি এবং SHA-1 আঙুলের ছাপ দেওয়ার চেষ্টা করার জন্য এক দিন ব্যয় করার পরে এবং এই সমস্ত সমস্যা ছিল। আপনি সাহায্য করেছেন। অনেক ধন্যবাদ!
ক্লাস অ্যান্ড্রয়েড

আপনার প্রকল্পের জন্য SHA1 কী যুক্ত করার চেষ্টা করুন @ রোহিতসিংহ
স্বরূপ

1
@ মাদুস্বরূপ যদি কেবল দু'বার উপায়ে যাওয়ার উপায় থাকে ... ধন্যবাদ স্যার
লেফটি

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 উভয় আঙ্গুলের ছাপ যুক্ত করুন।

নোট: নতুন আঙুলের ছাপ সহ আপডেট করা গুগল-পরিষেবাদি.জসন সহ গুগল-সেবা.জসন প্রতিস্থাপন করতে ভুলবেন না। এতে আমি দু'দিন হেরে গেলাম।

ডিবাগ করার সময়

অ্যান্ড্রয়েড স্টুডিও স্বয়ংক্রিয়ভাবে প্রথম ডিবাগ বিল্ডে উত্পন্ন ~/.android/debug.keystore করে অ্যাপ্লিকেশনটিতে সাইন ইন করতে এটি ব্যবহার করে।

SHA-1 রান (পাসওয়ার্ড android) ( দস্তাবেজ ) পেতে:

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

এই SHA-1অ্যাপ্লিকেশান সেটিংস যোগ করা উচিত এ firebaseক্ষমতা Google সাইন ইন ব্যবহার করার অনুমতি ডিবাগ বিল্ড পরীক্ষা হয়েছে।


1
আপনি কীভাবে নিশ্চিত যে তিনি ফায়ারবেস ব্যবহার করছেন?
পলজি

এটি অনুমান (কোড এবং সার্ভারলেস মধ্যে সাদৃশ্য)। ফায়ারবেস প্রকল্পটি জিসিপি কনসোলের সাথেও সংযুক্ত। আমরা জিসিপি শংসাপত্রগুলিতেও ফিঙ্গারপ্রিন্টগুলি পরিবর্তন করতে পারি।
নিয়স নজর

একই ত্রুটিটি সহ, তবে আমার ক্ষেত্রে এটি ফায়ারবেসের সাথে সম্পর্কিত ছিল না (আমি এটি ব্যবহার করছি না)।
মাজেদ ডিএইচ

কনসোল.ডিফলারস google.com/apis/credentials এ যান SH SHA কী সহ নতুন শংসাপত্র (ও এথ ক্লায়েন্ট) যুক্ত করুন। (ফায়ারবেস স্বয়ংক্রিয়ভাবে আমাদের ফায়ারবেস প্রকল্পগুলির জন্য এটি করে)
নিয়াস নজর

আপনার প্রকল্পের অভ্যন্তরীণ অ্যাপ্লিকেশন ডিরেক্টরিতে google-Services.json ফাইলটি পাওয়া যাবে be (ফাইন্ডার / ফাইল এক্সপ্লোরার এর মাধ্যমে যান)
মেহুল টান্ডলে

43

 ত্রুটি 12500 এর জন্য আপনাকে কেবল ফায়ারবেসের সেটিংগুলিতে সমর্থন জিমেইল যুক্ত করতে হবে এবং ত্রুটির জন্য 10 ছবিতে দেখতে দেখতে ফায়ারবেস কনসোলে এসএসএস ফিঙ্গারপ্রিন্ট যুক্ত করতে হবে


ভাল এবং সরাসরি এগিয়ে উত্তর, শুধু আমার জিমেইল অ্যাকাউন্টটি কনফিগার করেছে এবং বাম করে তা বাকিটা করে
অজিৎ

43

Google সাইন ইন কাজের জন্য সহায়তা ইমেল এবং সমস্ত প্রকল্প এবং গোপনীয়তার লিঙ্কগুলি প্রয়োজনীয়, অন্যথায় এটি 12500 ছুঁড়ে।

এটি "ওআউথ সম্মতি স্ক্রিন" নামে দ্বিতীয় ট্যাবের নীচে https://console.developers.google.com/apis/credentials এ সেট করুন - সেখানে আপনি তিনটি লিঙ্ক খুঁজে পাবেন যা কনফিগার করা দরকার।

ফায়ারবেস গাইডগুলিতে এটির কোনও উল্লেখ নেই।


3
ধন্যবাদ, এটা আমার জন্য কাজ করছে। সমস্যার সমাধান করতে আমি প্রায় পুরো দিন নষ্ট করেছি
কৃষ্ণকুমার শর্মা

2
ধন্যবাদ, আমি গোপনীয়তা লিঙ্কগুলিতে এবং কাজকর্মের জন্য কেবলমাত্র একটি 'অনুমোদিত ডোমেন' যুক্ত করেছি। আপনি আমাকে কয়েক ঘন্টা পরীক্ষার এবং ত্রুটি থেকে বাঁচিয়েছেন 💌
কোকো

এটি উত্তর গ্রহণ করা উচিত। আমি কোনও সফলতা ছাড়াই 2 দিন ধরে লড়াই করে যাচ্ছি। গুগলের নির্দেশিকাগুলি আপডেট করা উচিত, আপাতত তাদের ডকুমেন্টেশন বিভ্রান্ত করছে, তাদের গাইড কখনই কাজ করবে না এবং ত্রুটি কোড কিছুই বলে না
user1209216

1
গোপনীয়তার লিঙ্কগুলি কোথায় যুক্ত করবেন?
শিহাব উদ্দিন

4
"OAuth সম্মতি স্ক্রিন" নামক দ্বিতীয় ট্যাবে - ফর্মের নীচে আপনি তিনটি লিঙ্ক পেয়েছেন
zub0r

21

Https://console.developers.google.com/apis/credentials এ OAuth সম্মতি স্ক্রিন আপডেট করার চেষ্টা করুন


3
আমাকে সমর্থন ইমেল যোগ করতে হয়েছিল এবং তারপরে এটি কাজ শুরু করে। এই ছিল তোলপাড়।
আদর্শ

এছাড়াও সমস্ত প্রকল্প এবং গোপনীয়তার লিঙ্কগুলি প্রয়োজনীয়, অন্যথায় এটি 12500 নিক্ষেপ করে। এটি কোথাও উল্লেখ করা হয়নি।
zub0r

@ zub0r লিঙ্কগুলি প্রয়োজনীয় নয়। উত্স: আমি তাদের ছাড়া এটি করেছি।
ইজিচিজ

18

আমি কিছুক্ষণ এই জন্য আটকে ছিলাম।

নিশ্চিত হয়ে নিন যে এই পদক্ষেপগুলি সম্পাদিত হয়েছে-

  • সঠিক SHA কী ফায়ারবেস কনসোলে সংরক্ষণ করা হয়েছে।
  • সর্বশেষতম গুগল-পরিষেবা.জসন ডাউনলোড করুন
  • এবং সর্বশেষ এবং সর্বাধিক গুরুত্বপূর্ণ সংরক্ষণ করুন OAuth সম্মতিটি Google এপিআই-তে শংসাপত্রগুলির অধীনে, OAuth স্ক্রিনটি খুঁজে বের করতে বেশ সময় নিয়েছে। এবং এটি পরে ভাল কাজ করে।

6
আমরা হব. এটি এখানে 2019 এর গ্রহণযোগ্য উত্তর হওয়া উচিত। গুগল
আশ্চর্যরূপে

1
উঘ, এটির জন্য আর একটি ভোট। সম্পূর্ণ আমার অস্পষ্ট সমস্যা ছিল।
ইজিচিজ

12

দেখে মনে হচ্ছে আপনার SHA1 গুগল প্লে স্টোর দ্বারা ওভাররাইট করা হয়েছে। অ্যাপ্লিকেশন স্বাক্ষরের অধীনে আপনার গুগল প্লে স্টোর, লঞ্চ প্যানেলটি পরীক্ষা করে দেখুন, গুগল প্লেতে অতিরিক্ত এসএএএ 1 যুক্ত হয়েছে কিনা তা দেখুন।

এবং সেই SHA1 অনুলিপি করুন, আপনার প্রাসঙ্গিক জায়গায় যুক্ত করুন, কাজটি করবে।


1
হে ভগবান! এই টিপ জন্য আপনাকে ধন্যবাদ! অ্যাপ্লিকেশন বান্ডিলগুলি নিজস্ব SHA1 তৈরি করেছে, সুতরাং স্থানীয়ভাবে ব্যবহৃত হওয়া রিলিজ কীগুলি (APKগুলি তৈরি করার সময়) আর সঠিক নয়।
জিয়া Tse

এটি এখন পর্যন্ত সবচেয়ে বিভ্রান্তিকর কর্মপ্রবাহ। তবে
টিপটির

5

যদি এখনও কেউ একই রকম সমস্যা নিয়ে থাকে তবে আপনি যদি কাস্টম স্কোপগুলি যুক্ত করেন তবে তা নিশ্চিত করুন যে এটি একটি বৈধ সুযোগ scope আমার ক্ষেত্রে, আমি গুগল স্কোপের সাথে ফেসবুকের স্কোপগুলি মিশ্রিত করেছিলাম এবং এটি বের করতে আমার কিছুটা সময় নেয়!


5

আমি ফায়ারবেস প্রমাণীকরণ ব্যবহার করছি। আমার SHA-1 সঠিকভাবে নির্দেশিত ছিল, ক্লায়েন্ট আইডিও সঠিক ছিল তবে আমি এখনও 12500 পেয়ে যাচ্ছি।

দেখা গেল যে আমার সমস্যাটি হ'ল আমি আমার প্রকল্প সেটিংসে সাপোর্ট ইমেলটি নির্দেশ করে নি । (সেটিংস -> সাধারণ ট্যাব -> আপনার প্রকল্প (পাবলিক সেটিংস) বিভাগ)।


3
আমার ক্ষেত্রেও একই ঘটনা ঘটেছিল। গুগলের পরিষেবাগুলিতে গুরুতর ডকুমেন্টেশন সমস্যা রয়েছে। আমি আশা করি তারা এ জাতীয় সমস্যাগুলি নথিভুক্ত করেছে বা কমপক্ষে কোনও ব্যবহারকারী বান্ধব ত্রুটি দেখায়।
আশিশ-গোয়েল

4

ফায়ারবেস কনসোলে আপনার প্রকল্পে যান, প্রকল্প সেটিংস খুলুন, সেখানে আপনার এসএএএ শংসাপত্রের ফিঙ্গারপ্রিন্ট যুক্ত করুন। আপডেট হওয়া google-Services.json ফাইলটি ডাউনলোড করুন এবং এটি আপনার প্রকল্প অ্যাপ্লিকেশন ফোল্ডারে যুক্ত করুন।

এটি আমার পক্ষে কাজ করেছে।

ফায়ারবেস কনসোল স্ক্রিনশট


3

আমি মনে করি ত্রুটিটি ভুল এসএএএ 1 থেকে এসেছিল। দয়া করে ভুলে যাবেন না যে অ্যান্ড্রয়েড স্টুডিওতে SHA1 রিলিজ এবং ডিবাগ মোডের মধ্যে আলাদা। SHA1 পেতে কীটল ব্যবহারের পরিবর্তে, গ্রেডল প্রকল্প -> টাস্ক -> অ্যান্ড্রয়েড -> সাইন ইনআরয়েড স্টুডিওতে রেকর্ড করুন (এটি মেনু দ্বারা খুলতে পারেন -> টুল উইন্ডো -> গ্রেডেল) মুক্তি পেতে এবং SHA1 ডিবাগ করতে পারেন। এর পরে, সহজ কাজ করার জন্য, আপনাকে গুগল ক্লাউড কনসোলে দুটি এসএএএ 1 সহ 2 টি পৃথক শংসাপত্র তৈরি করতে হবে (গুগল কেবল রিলিজ এসএএ 1 ব্যবহার করে 1 তৈরি করার নির্দেশ দেয়, যখন আমরা এটি বিকাশ করি না কারণ এটি ডিবাগ এসএএএ 1 ব্যবহার করে না)।


3

প্রথমে নিশ্চিত হয়ে নিন যে আপনি নিজের অ্যাপ্লিকেশনটি Google বিকাশকারীদের কনসোলে নিবন্ধভুক্ত করেছেন

আপনার ফায়ারবেস অ্যাপ্লিকেশনটিতে আপনার কী 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 কোড ফেরত দিয়ে ব্যর্থ হয়েছি Ul শেষ অবধি, এটি ছিল যে আমার ডিবাগ কীটির পরিবর্তে অন্য কেউ তাদের SHA1 দিয়ে আমার OAuth সেটআপ করেছিলেন। এটি এটি স্থির করে।
বেপরোয়া

@ রেখলেস আমি আনন্দিত এই সাহায্য!
ডেন

2

আমার জন্য সমস্যাটি ছিল আমার ডিবাগ-কনফিগার অ্যাপ্লিকেশনটির সাথে একটি 'রিলিজ' ক্লায়েন্টআইডি। প্রতিটি SHA-1 যথাক্রমে আপনার কাছে একটি রিলিজ এবং একটি ডিবাগ কী রয়েছে তা নিশ্চিত করুন।


2

আপনি যদি এলোপাতাড়ি থেকে এখানে আসছেন : ডকুমেন্টেশন অনুসারে আমাদের এখানে কর্নারের একটি কেস ঠিক করতে হবে: https://pub.dev/packages/google_sign_in এখানে চিত্র বর্ণনা লিখুন

  • গুগল এপিআই এবং সেভিসে যান
  • আপনি যে অ্যাপ্লিকেশনটিতে Google সাইন ইন প্রয়োগ করতে চান তা নির্বাচন করুন।
  • তারপরে সক্ষম এপিআইএস এবং পরিষেবাগুলিতে ক্লিক করুন

এখানে চিত্র বর্ণনা লিখুন

  • তারপরে গুগল পিপলস এপিআই অনুসন্ধান করুন

এখানে চিত্র বর্ণনা লিখুন

  • গুগল পিপল এপিআই কার্ড খুলুন এবং সক্ষম ক্লিক করুন, আপনার অ্যাপ্লিকেশনটি সমস্যা থেকে মুক্তি পেতে পারে।

2

যখন আপনার অ্যাপ্লিকেশনটি ব্যাকএন্ড সার্ভারের সাথে প্রমাণীকরণ করে বা আপনার ব্যাকএন্ড সার্ভার থেকে গুগল এপিআইগুলিতে অ্যাক্সেস করে, তখন আপনাকে অবশ্যই ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য অ্যাক্সেসের জন্য, GoogleSignInOptions অবজেক্টটি নির্মাণ করার সময় আপনার সার্ভারের জন্য অনুরোধআইডটোকেন পদ্ধতিতে তৈরি করা OAuth 2.0 ক্লায়েন্ট আইডি পাস করতে হবে । এছাড়াও, API কনসোলের শংসাপত্র পৃষ্ঠায় পাওয়া 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: ডিরেক্টরিতে রিলিজ - সাইনিং.প্রোপার্টি নামে একটি ফাইল তৈরি করুনplatform/android

পদক্ষেপ -4: ফাইলে বিষয়বস্তু যুক্ত করুন

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

দ্রষ্টব্য: এগুলি ডিফল্ট মান। আপনি যদি কাস্টম ওরফে এবং পাসওয়ার্ড সরবরাহ করে থাকেন তবে সে অনুযায়ী তাদের ব্যবহার করুন।

পদক্ষেপ -5: এখন তৈরি করুনionic cordova build android


1

অন্য প্রকল্পে (বিভিন্ন অ্যান্ড্রয়েড স্টুডিও) আমার প্রকল্পটি খোলার পরে আমি একই সমস্যাটি অনুভব করেছি। আমার ক্ষেত্রে, আমি ফায়ারবেস সহায়ক ব্যবহার করে এটি সমাধান করেছি, যা আমি প্রাথমিকভাবে ফায়ারবেস সেটআপ করার জন্য ব্যবহার করেছিলাম। ফায়ারবেস সহকারী (সরঞ্জামসমূহ> ফায়ারবেস) খুলুন এবং প্রমাণীকরণ> সংযোগ নির্বাচন করুন। এটি প্রকল্পটিকে ফায়ারবেসে পুনরায় সংযুক্ত করেছে এবং কনফিগারগুলি আপডেট করেছে


1

আমি 2 সপ্তাহ থেকে গুগল লগইন ইস্যুতে আটকে ছিলাম, শেষ পর্যন্ত এটি ভালভাবে সাজিয়েছি। কারণটির কারণটি আমাকে ব্যাখ্যা করুন। বিষয়টি ফায়ারবেসের সাথে সম্পর্কিত ছিল। ফায়ারবেসে তারা একটি ক্ষেত্রকে "সমর্থন ইমেল" optionচ্ছিক হিসাবে উল্লেখ করেছে। তবে একবার আমি এটি (আপনার ব্যক্তিগত ইমেলের কোনও) যুক্ত করলে, সমস্যাটি সাজানো হয়েছে এবং আমি প্রতিক্রিয়া পেয়েছি। যদি আপনার 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. আপনার গুগল প্রকল্পে ক্লায়েন্ট আইডি তৈরি করুন।
  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 এর মধ্যে ক্লায়েন্ট আইডির মান ব্যবহার করা হয় যা গুগল-পরিষেবাদি.জসন ফাইলের অভ্যন্তরে তৈরি হয়।

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

আমার ক্ষেত্রে, ফায়ারবেস কনসোলে ফিঙ্গারপ্রিন্ট যুক্ত করার পরে এটি গুগল বিকাশকারী কনসোল দ্বারা স্বয়ংক্রিয়ভাবে তুলে নেওয়া হয়েছে এবং ফিঙ্গারপ্রিন্টগুলি দেখিয়েছে। কিন্তু সাইন ইন কার্যকর হয়নি। প্রতিটি পদক্ষেপে দেখার পরে, আমি অনুভব করেছি যে গুগল আমার ম্যানিফেস্ট ফাইলের প্যাকেজটিকে এইরকমভাবে উল্টে দিয়েছে com.xxxxxxxx.app। তবে এটি আসলে app.xxxxxxxx.com, গুগল বিকাশকারী কনসোলে। তাই আমি স্বয়ংক্রিয়ভাবে একটি আঙুলের ছাপ তৈরি করেছি এবং সঠিক প্যাকেজের নাম সহ ফিঙ্গারপ্রিন্ট যুক্ত করেছি। গম্ভীর গর্জন !!। এটা কাজ করেছে.


0

গুগল বিকল্পটি সক্ষম না করা অবস্থায় ত্রুটিটি আমার কাছে উপস্থিত হয়েছিল, যেমনটি ছবিতে প্রদর্শিত আছে

যখন আমি গুগলের অ্যাকাউন্ট পরিবর্তন করেছি এবং গুগলের সাথে সংযোগ স্থাপনের বিকল্পটি চালু করতে ভুলে গিয়েছি তখন এটি ঘটেছিল।


0

আপনার প্রকল্পে সংখ্যাসূচক বা কোনও প্রকারের চিহ্ন সহ কোনও বিশেষ চরিত্রের উপস্থিতি থাকা উচিত না তা নিশ্চিত করুন (প্রকল্পের নাম com.google.testproject হিসাবে সহজ হওয়া উচিত)


এর কল প্রকল্পের প্যাকেজের নাম না প্রকল্পের নাম
devloper খ

0

আমার ক্ষেত্রে আমি একটি অ-প্রযোজনা অ্যাপ্লিকেশনটিতে কাজ করছি, সমস্যাটি ছিল ফায়ারবেস কনসোলে একটি প্রকল্প তৈরি করার সময়, ফায়ারবেস এবং গুগল বিকাশকারী কনসোলগুলি থেকে পিএইচএইচএএচ -1 কীগুলি সিঙ্ক্রোনাইজ করার সমস্যা ছিল। সুতরাং, আমি প্রথমে গুগল বিকাশকারী কনসোলে প্রকল্পটি তৈরি করার সিদ্ধান্ত নিয়েছি এবং ফায়ারবেস কনসোলে নতুন প্রকল্প তৈরি করার সময় এটি নির্বাচন করব।

আমি এর জন্য একটি টিউটোরিয়ালও তৈরি করেছি , এটি আপনাকে সহায়তা করতে পারে।


0

আমার ক্ষেত্রে, সমস্যাটি ছিল যে আমার এমুলেটরটির প্লে স্টোর নেই। আমি ভিজুয়াল স্টুডিওর মাধ্যমে এমুলেটরটি তৈরি করেছি (যার নাম এপিআই 23), কারণ আমি পাশাপাশি জ্যামারিন.ফর্মগুলি ব্যবহার করে বিকাশ করি এবং ভিজুয়াল স্টুডিওর অ্যান্ড্রয়েড ডিভাইস ম্যানেজারে আপনি নির্বাচন করতে পারেন আপনার এমুলেটরটিতে গুগল প্লে স্টোর থাকা উচিত কিনা।

অ্যান্ড্রয়েড স্টুডিওর এভিডি এর মাধ্যমে একটি এমুলেটর তৈরি করতে হবে এবং এটির প্লে স্টোর রয়েছে তা নিশ্চিত করতে হবে:

এখানে চিত্র বর্ণনা লিখুন


0

আমার ক্ষেত্রে, এই ত্রুটিটি সেখানে ছিল কারণ অ্যান্ড্রয়েড uthথ সিনিয়র দল দ্বারা সরানো হয়েছিল কারণ মনে হয় ব্যাকএন্ড প্রমাণীকরণে অ্যান্ড্রয়েড কী দরকার নেই। সুতরাং গুগল লগইনে অ্যান্ড্রয়েড এবং ওয়েব ক্লায়েন্ট কী উভয়ই প্রয়োজন।


-1

এই বিকল্পগুলি ব্যবহার করে দেখুন:

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

এটি পাসওয়ার্ডের জন্য অনুরোধ জানায় এবং কেবল পাসওয়ার্ড প্রবেশ করায়। আপনি SHA1, MD5 আঙুলের ছাপ দেখতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.