मैं Firebase (v3) प्रमाणीकरण के साथ एक लॉगिन बना रही हूँ दूर करता है और मैं इस समस्या को मारा:Firebase लॉगिंग पिछले प्रदाता (पासवर्ड)
- उपयोगकर्ता ईमेल और पासवर्ड से शुरू में साइन अप करता है ।
- लॉगआउट।
- बाद में, Google के साथ साइन इन करें।
मैं एक त्रुटि शिकायत उस ईमेल पते किसी दूसरे खाते के लिए प्रयोग किया जाता है उम्मीद करेंगे, और फिर पासवर्ड तो खातों को लिंक करने टाइप करने के लिए कहें, लेकिन इसके बजाय Firebase चुपचाप ईमेल/पासवर्ड लॉगिन को हटा विधि और एक सफल संदेश देता है।
गूगल के साथ प्रमाणीकरण के लिए कोड:
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(
result => {
console.log("federated (google) result", result);
},
error => {
console.log("federated (google) error", error);
}
);
ईमेल और पासवर्ड से प्रमाणीकरण के लिए कोड:
// Login:
firebase.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(
ok => {
console.log("email/pass sign in success", ok);
},
error => {
console.log("email/pass sign in error", error);
}
)
// Register:
firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password).then(
ok => {
console.log("Register OK", ok);
},
error => {
console.log("Register error", error);
}
)
मैं in the guide उस खाते को जोड़ने अपने वर्तमान प्रदाता के साथ एक उपयोगकर्ता में पहली हस्ताक्षर करने के द्वारा किया जाता है को देखने के/विधि और केवल तब नई प्रमाणीकरण विधि/प्रदाता के लिए प्रमाण पत्र/प्राप्त टोकन के लिए पूछें। मेरे मामले में, मुझे नहीं पता कि उनके पास बहुत देर तक अन्य प्रमाणीकरण प्रदाता हैं (फ़ायरबेस इसे ओवरराइट करता है)।
क्या फ़ायरबेस द्वारा पहले से ही मौजूद खाते के विवरण को ओवरराइट करने से पहले ईमेल का पता लगाने का कोई तरीका है और उपयोगकर्ता से अपना पासवर्ड टाइप करने और खातों को लिंक करने के लिए कहता है? या, इससे भी बेहतर, Google के साथ लॉग इन किए गए खातों को स्वचालित रूप से लिंक करते हैं और ईमेल पते मेल खाते हैं?
चूंकि फायरबेस 3 आपको विभिन्न मैकेनिज्म का उपयोग करके लॉग इन करने की अनुमति देता है .. आप एक एकीकृत दृश्य के लिए विभिन्न तंत्रों को एक साथ जोड़ना चाह सकते हैं। Https://firebase.google.com/docs/auth/android/account-linking – ErstwhileIII
का संदर्भ लें यह सही है। मैं विभिन्न तंत्रों को जोड़ना चाहता था लेकिन विशेष रूप से मुद्दा (या भ्रम, उत्तर देखें) तब होता था जब उपयोगकर्ता के पास पहले से ही एक खाता है (ईमेल/पासवर्ड कहें) और अगली बार जब वह विज़िट करता है, इसके बारे में भूल जाता है, और इसमें साइन इन होता है विधि बी के साथ (Google कहें)। ईमेल पते समान हैं, इसलिए खातों को स्वचालित रूप से लिंक किया जाना चाहिए (प्रोग्रामेटिक रूप से आप नहीं जानते कि साइन-इन के दौरान पहले से ही उस ई-मेल के साथ एक खाता है), या साइन इन को एक त्रुटि वापस करनी चाहिए ताकि आप डाल सकें कुछ इस मुद्दे से निपटने के लिए लॉगिन करते हैं। मैंने अपने जवाब में लिखा कि वास्तव में क्या होता है। –