2016-06-20 5 views
5

मैं अपने Google उपयोगकर्ताओं को फ़ायरबेस का उपयोग करके अपने ऐप में लॉग इन करने का प्रयास कर रहा हूं, लेकिन हर बार जब मैं नीचे दी गई विधि का उपयोग करता हूं, तो मुझे यह त्रुटि मिलती है: An internal error has occured. [ OAuth2 client id in server configuration is not found. ]। मैं पहले से ही डेवलपर कंसोल से अपनी क्लाइंट आईडी कुंजी प्राप्त कर चुका हूं, और मैं अपने क्लाइंट आईडी का उपयोग कर रहा हूं, न कि एंड्रॉइड के मेरे अनुरोध टोकन में। कोई विचार?फ़ायरबेस ने सर्वर कॉन्फ़िगरेशन में OAuth2 क्लाइंट आईडी फेंकना जारी रखा है

private void firebaseAuthWithGoogle(final GoogleSignInAccount acct) { 

     final AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null); 
     mAuth.signInWithCredential(credential) 
       .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) { 


         if (!task.isSuccessful()) { 

          Toast.makeText(Login.this, "Oops, something went wrong with your login. Please try again.", 
            Toast.LENGTH_SHORT).show(); 

         } 

         else{ 


          Intent i = new Intent(Login.this, FindOpp.class); 
          startActivity(i); 
         } 

        } 
       }); 
    } 
+0

और हाँ, ऐसा इसलिए है क्योंकि यह नहीं मिला है। शायद, आपको डबल चेक डबल करना चाहिए। फायरबेस कंसोल और Google एपीआई कंसोल हाल ही में अपने सिर को लपेटने के लिए एक भ्रमित चीज हो सकती है। और बस याद रखें, आप एपीआई कुंजी आपके OAuth2 क्लाइंट आईडी से अलग हैं – Rexford

+0

@Rexford आपकी मदद के लिए धन्यवाद; मेरा अगला प्रश्न, और शायद मुझे पहले पूछा जाना चाहिए था, क्या वास्तव में नहीं मिला है? मैंने एपीआई कंसोल में वेब क्लाइंट बनाने के लिए अपने फायरबेस यूआरएल (google-services.json में दिया; यह firebaseio.com जैसा दिखता है) का उपयोग किया, लेकिन वास्तव में क्या नहीं मिला है? मैंने एपीआई कंसोल द्वारा मुझे दिए गए क्लाइंट आईडी का इस्तेमाल मेरे अनुरोध में आईडी के रूप में किया है, तो क्या यह बायेंग नहीं मिला है? –

उत्तर

5

Firebase के डिफ़ॉल्ट config firebase कंसोल (नहीं बादल कंसोल) से जारी services.json उपयोग करता है:

यहाँ मेरी कोड है। जब आप फ़ायरबेस कंसोल पर प्रोजेक्ट बनाते हैं तो Oauth सेटिंग स्वचालित रूप से कॉन्फ़िगर की जाती है ताकि आपको मैन्युअल रूप से बनाए गए किसी भी अन्य कुंजियों का उपयोग नहीं करना चाहिए

अपने ऐप के मॉड्यूल रूट सेवाओं पर services.json होने के बाद आपको FirebaseAuth.signInWithCredential पर कॉल करने के लिए आवश्यक सब कुछ होना चाहिए Oauth सेटिंग्स की आवश्यकता होनी चाहिए। https://groups.google.com/forum/?hl=ca#!topic/firebase-talk/d9MHQjAxFBY

मैं https://console.developers.google.com/apis/credentials

इसके अलावा में वेब ग्राहक आईडी & वेब ग्राहक गुप्त श्वेतसूची में वाकई में requestIdToken(getString(R.string.default_web_client_id)) उपयोग कर रहे हैं के लिए किया था:

+0

'जब आप फ़ायरबेस कंसोल पर प्रोजेक्ट बनाते हैं तो ओथ सेटिंग स्वचालित रूप से कॉन्फ़िगर की जाती है, हालांकि, मेरे फ़ाइरेबेस कंसोल प्रोजेक्ट ने Google डेवलपर कंसोल पर वेब डेवलपर कंसोल पर ओयूथ कुंजी के साथ Google डेवलपर कंसोल पर दिखने से पहले 45 मिनट या इससे भी अच्छा समय लिया। क्या यह सामान्य है? – nightlytrails

2

यहाँ एक चर्चा जो मैं Google समूह पर पाया जो वास्तव में मददगार था है requestIdToken(<Actual Client ID>)

के बजाय कोड मुझे उम्मीद है कि इससे मदद मिलती है!

+0

उत्कृष्ट, Google समूह के लिंक के लिए धन्यवाद। –

1

jirungaray का जवाब सही है, आपको एपीआई कंसोल में अपनी खुद की चाबियां नहीं उत्पन्न करनी चाहिए। हालांकि, अगर आप मेरे जैसे हैं और चारों ओर गड़बड़ करते समय अपनी चाबियाँ हटा दी हैं, तो आप इस स्थिति को ठीक कर सकते हैं। >Sign in Method - ->Google -

firebase में Authentication पर जाएं>Web SDK Configuration और यहां आप मूल्यों आप चाहते करने के लिए कुंजी और गोपनीयता बदल सकते हैं।

+0

इसने आईओएस में अपना मुद्दा हल किया। धन्यवाद। – birdcage

संबंधित मुद्दे