2016-07-16 8 views
5

मैं चाहता हूं कि उपयोगकर्ता अपना पासवर्ड अपडेट करते समय वर्तमान पासवर्ड और नया डालें।फ़ायरबेस 3 पर पासवर्ड बदलते समय उपयोगकर्ता के वर्तमान पासवर्ड को कैसे सत्यापित करें?

मैंने फ़ायरबेस दस्तावेज़ों की खोज की है और उपयोगकर्ता के वर्तमान पासवर्ड को सत्यापित करने का कोई तरीका नहीं मिला है।

क्या किसी को पता है कि यह संभव है?

उत्तर

11

आप पासवर्ड बदलने से पहले reauthenticate का उपयोग कर इसे प्राप्त करने में सक्षम होंगे।

let user = FIRAuth.auth()?.currentUser 
let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email, password: currentPassword)  

user?.reauthenticateWithCredential(credential, completion: { (error) in 
    if error != nil{ 
     self.displayAlertMessage("Error reauthenticating user") 
    }else{ 
     //change to new password 
    } 
}) 

बस में अधिक जानकारी के here आप जो कुछ भी प्रदाता आप उपयोग कर रहे के लिए क्रेडेंशियल वस्तु स्थापित करने के लिए कैसे प्राप्त कर सकते हैं जोड़ने के लिए।

+1

यह काम किया। मैंने इसे जवाब के रूप में चिह्नित किया। धन्यवाद। –

+1

@AmadeuAndrade नाइस! खुशी है कि तुमने इसे बनाया! – adolfosrs

0

स्विफ्ट 4 के लिए:

typealias Completion = (Error?) -> Void 

func changePassword(email: String, currentPassword: String, newPassword: String, completion: @escaping Completion) { 
    let credential = EmailAuthProvider.credential(withEmail: email, password: currentPassword) 
    Auth.auth().currentUser?.reauthenticate(with: credential, completion: { (error) in 
     if error == nil { 
      currentUser.updatePassword(to: newPassword) { (errror) in 
       completion(errror) 
      } 
     } else { 
      completion(error) 
     } 
    }) 
} 

Firebase प्रलेखन पाया जा सकता है here

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