2016-05-19 27 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。

相关问题