2016-05-19 26 views
3

我剛剛使用Firebase 3.2.0啓動了一個新項目(Swift 2.2; iOS 9; Xcode 7.3.1),並且在我的授權中遇到以下錯誤/註冊過程中進入時都無效的電子郵件和弱口令:Firebase 3.2.0 - 創建用戶的內部錯誤

NSError

Error Domain=FIRAuthErrorDomain Code=17999 "An internal error has occurred, print and 
inspect the error details for more information." UserInfo={error_name=ERROR_INTERNAL_ERROR, 
NSUnderlyingError=0x7c0549a0 {Error Domain=FIRAuthInternalErrorDomain Code=3 "(null)" 
UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey=<CFBasicHash 0x7c04bd90 [0x1a701f8]> 
{type = immutable dict, count = 3, 
entries => 
0 : <CFString 0x7c0fb0c0 [0x1a701f8]>{contents = "errors"} = 
<CFArray 0x7c0713a0 [0x1a701f8]>{type = immutable, count = 1, values = (
0 : <CFBasicHash 0x7c0fac00 [0x1a701f8]>{type = immutable dict, count = 3, 
entries => 
0 : <CFString 0x7c051080 [0x1a701f8]>{contents = "reason"} = 
<CFString 0x7c0553f0 [0x1a701f8]>{contents = "invalid"} 
1 : <CFString 0x7c055f30 [0x1a701f8]>{contents = "message"} = 
<CFString 0x7c061580 [0x1a701f8]>{contents = "INVALID_EMAIL"} 
2 : <CFString 0x7c054fd0 [0x1a701f8]>{contents = "domain"} = 
<CFString 0x7c060290 [0x1a701f8]>{contents = "global"} 
} 

)} 
1 : <CFString 0x7c05aae0 [0x1a701f8]>{contents = "code"} = 
<CFNumber 0x7c073010 [0x1a701f8]>{value = +400, type = kCFNumberSInt64Type} 
2 : <CFString 0x7c067e70 [0x1a701f8]>{contents = "message"} = 
<CFString 0x7c0543a0 [0x1a701f8]>{contents = "INVALID_EMAIL"} 
} 
}}, NSLocalizedDescription=An internal error has occurred, print and inspect the error 
details for more information.} 

...和我的代碼如下....

AuthViewController.swift

if let email = emailField.text where email != "", let password = passwordField.text where 
    password != "" {FIRAuth.auth()?.signInWithEmail(email, password: password) { (user, error) in 
    if let error = error { 
      if let errorCode = FIRAuthErrorCode(rawValue: error.code) { 
       switch errorCode { 
       case .ErrorCodeNetworkError: 
        print("A network error occurred") 
       case .ErrorCodeUserNotFound: 
        print("ATTEMPTING TO CREATE USER") 
        FIRAuth.auth()?.createUserWithEmail(email, password: password) { (user, error) in 
         if let error = error { 
          if let errCode = FIRAuthErrorCode(rawValue: error.code) { 
           switch errCode { 
           case .ErrorCodeInvalidEmail: 
            print("invalid email") 
           case .ErrorCodeWeakPassword: 
            self.insertErrorLabel("Password is considered weak (< 6 characters). Try again") 
           default: 
            print("Create User Error: \(error)") 
           } 
          } 
         } else { 
          // create a user in the database... 
         } 
        } 
       case .ErrorCodeUserTokenExpired: 

       .... 

執行命中signInWithEmail()中的.ErrorCodeUserNotFound大小寫。然後它在createUserWithEmail()中遇到默認情況。

從文檔看來,好像在createUserWithEmail()函數中有一個INVALID_EMAIL錯誤鍵可用,但它似乎是拋出內部錯誤而不是觸及InvalidEmail錯誤的情況。

三個問題:

  1. 我是否有簽到功能衰竭導致的createUser這裏可接受的流量?
  2. 錯誤的真正原因是什麼?
  3. 我該如何解決它?

在此先感謝。

回答

4

爲了將來的參考,我爲上述錯誤提出了一個錯誤,並且Firebase/Google已確認它將在下一版本的SDK中得到解決。

+0

'pod'Firebase','〜> 3.3''仍然出現錯誤 –

1

我有同樣的問題,並且發現我甚至無法通過Firebase控制檯添加用戶。 奇怪的是,我啓用了比禁用谷歌登錄,我能夠手動添加用戶。所以我試圖創建一個用戶createUserWithEmail,它的工作。

您可能想要嘗試啓用和禁用使用電子郵件功能的登錄,這可能以某種方式重置Firebase方面的一些設置來解決問題。這種「解決方法」使我相信問題出在他們的服務器端而不是SDK。

相關問題