2016-08-11 34 views
5

我正在使用來自Google的新的Firebase開發應用程序。 而我在更新用戶電子郵件和密碼時遇到問題。如何在swift中使用新的Firebase更新電子郵件和密碼

這是我試過的。

let currentUser = FIRAuth.auth()?.currentUser 

currentUser?.updateEmail(email) { error in 
    if let error = error { 
     print(error) 

    } else { 
     // Email updated. 
     currentUser?.updatePassword(password) { error in 
      if let error = error { 

      } else { 
       // Password updated. 
       print("success") 

      } 
     } 
    } 
} 

但是,當更新密碼時,會發生這樣的錯誤。

「域= FIRAuthErrorDomain代碼= 17014‘這次行動是敏感,需要近認證......’

據我所知,我們有更新的電子郵件之後重新配置用戶。

我試着用這個代碼從火力重新cofiguring。

let user = FIRAuth.auth()?.currentUser 
var credential: FIRAuthCredential 

// Prompt the user to re-provide their sign-in credentials 

user?.reauthenticateWithCredential(credential) { error in 
    if let error = error { 
    // An error happened. 
    } else { 
    // User re-authenticated. 
    } 
} 

但這個錯誤發生

之前使用

變量「憑證」被草簽

我知道這是因爲我不初始化「憑據」變量,但我不知道如何解決這個工作。

有沒有人知道解決方案?

+0

這對我的作品我登錄後,我可以改變的電子郵件地址和密碼這條路。 – WeiJay

+0

嗨,@ EICaptainv2.0我已經更新了我的答案,請你看看並給我解決方案嗎? –

回答

7

在你編輯你沒有初始化FIRAuthCredential ...它應該是var credential = FIRAuthCredential()或者乾脆使用它像下面的代碼

let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email, password: password) 

user?.reauthenticateWithCredential(credential) { error in 
    if let error = error { 
     // An error happened. 
    } else { 
     // User re-authenticated. 
    } 
} 
+1

它完美地工作,這是最好的答案。謝謝。 –

相關問題