如何处理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错误代码进行比较。