我需要处理“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"
是一种非常糟糕的方式。
答案 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错误代码进行比较。