如何处理iOS中的Firebase数据库错误? #AskFirebase
我需要处理“权限被拒绝”错误不同于所有其他错误。
在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"
是一个非常糟糕的方法。
就像在评论中已经提到的那样,我使用相同的方法来确定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 } })
确保将类型为Error的返回错误对象转换为NSError。 使用其错误代码将其与Firebase错误代码进行比较。