如何处理iOS中的Firebase数据库错误? #AskFirebase

时间:2017-07-17 09:36:21

标签: ios swift firebase firebase-realtime-database

我需要处理“Permission Denied”错误与所有其他错误不同。

在Android中我已经完成了:( Kotlin)

override fun onCancelled(error: DatabaseError) {
    if (error.code == DatabaseError.PERMISSION_DENIED) {
        // Warn user
    }
}

在iOS中我只有:

someDbReference.observe(.childAdded, with: { data in 
    // Do something
}, withCancel: { err in
    // err is Error
    print((err as NSError).code) // 1
    // Which error? O_o
})

如何确定错误类型?我已经阅读了整篇文档,我认为err.localizedDescription == "Permission Denied"是一种非常糟糕的方式。

1 个答案:

答案 0 :(得分:-1)

就像评论中已经提到过的那样,我使用相同的方法来确定Firebase返回的错误类型。例如:

    someDbReference.observe(.childAdded, with: { data in 
        // Do something
    }, withCancel: { (returnedError: Error) in
        // Casting Error to NSError
        let testError: NSError = searchError as NSError

        // This is just random error from FB documentation, you can find all there
        if testError.code == FIRAuthErrorCode.errorCodeUserDisabled.rawValue {
          // User disabled
        }
      })

确保将返回的错误对象强制转换为NSError的Error类型。使用其错误代码将其与Firebase错误代码进行比较。