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

2024-03-15

我需要以不同于所有其他错误的方式处理“权限被拒绝”错误。

在 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 错误代码进行比较。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • ARC 项目中出现“Missing [super dealloc]”警告

    我已经将一个项目重构为 ARC 看起来不错 但是有一个对象使用通知中心 我在自定义的 dealloc 方法中删除了观察者 这在非 ARC 项目中效果很好 它也适用于 ARC 但我收到一个疯狂的警告 方法可能缺少 super dealloc
  • iOS 的 IAP 收据验证

    我正在开发一个客户端 服务器应用程序 它使用 Apple 的 IAP 和 StoreKit 框架来购买订阅 我们希望客户 iPhone 或 iPad 能够使用 StoreKit 框架通过其 iTunes 帐户向 Apple 进行初始订阅购买
  • SwiftUI 从一个列表拖动到另一个列表

    我正在尝试在列表之间拖放 我尝试过的 我找到了一个在 UIKIt 中执行此操作并使用 UIViewControllerRepresentable 的解决方案 但这不是我想要的 另一个解决方案是在列表上使用 onDrag 但这在 iPad 上
  • Android:订阅 Firebase 云消息传递 (FCM) 主题

    根据Firebase 云消息传递文档 https firebase google com docs cloud messaging android send multiple 为了订阅用户的主题 我需要调用 FirebaseMessagin
  • 在 SwiftUI 中使用获取视图的宽度

    我需要获取渲染视图的宽度SwiftUI 这显然没那么容易 我的看法是 我需要一个返回视图尺寸的函数 就这么简单 var body some View VStack alignment leading Text timer name font
  • 转换 [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA], (id)kCVPixelBufferPixelFormatTypeKey, nil];到斯威夫特

    这里出现错误 绞尽脑汁 尝试了各种组合 找不到类型 NSDictionary 的初始化程序 该初始化程序接受类型 object Int forKey CFString 的参数列表 configure the pixel format Obj
  • 在屏幕外绘制 uiview

    我想创建一个 UIView 它在调用 ViewDidLoad 时位于屏幕外 但一旦调用某个函数 我就会将其动画显示到屏幕上 用于对 UIView 进行动画处理的代码很好 但我似乎无法从屏幕外绘制 UIView 我已将故事板中的 UIView
  • Google 地图 ios:Mapview 路线垂直折线始终指向位置箭头的北部或顶部

    我已经在我的应用程序中实现了 Google Maps IOS 的基本功能 我必须将地图视图的方位设置为始终指向顶部或北部 我需要 如果我点击导航按钮 地图视图应该动画到位置箭头顶部 就像谷歌地图 ios 应用程序一样 箭头应始终固定并指向北
  • 保护移动连接 - 存储秘密和密钥

    感谢您花时间阅读本文 我是一名年轻的开发人员 在 Web 项目和服务器端编码方面拥有一些专业经验 但我现在正在构建我的第一个移动应用程序 经过在线深入研究后 我还没有能够澄清我关于保护移动应用程序数据传输的一些问题 这是我认为我理解正确的
  • 在ios键盘上方显示建议工具栏

    我是iOS开发的新手 我正在尝试在 ios 5 1 中创建一个具有 textView 的拼写建议类型应用程序 这样如果用户点击键盘的某个键 则建议工具栏会出现在键盘顶部 其中包含所有建议 并且如果用户点击这些建议之一它将显示在 textVi
  • 在 Xcode 4.2 中启用崩溃日志符号

    我使用的是 Xcode 4 2 我的崩溃日志没有被符号化 如何在 Xcode 4 2 中启用此功能 请浏览苹果的文档 http developer apple com library ios technotes tn2151 index h
  • 高度在 IOS (iphone) 上无法正常工作

    我已经创建了this https codepen io salman15 project live DWbWpo Codepen 上的网站 在尝试使其响应所有平台时 我遇到了问题 看起来单个 div 覆盖了整个页面 仅在 IOS 上 并且并
  • 检查文件是否是别名 Swift

    如何在 Mac 上检查文件是否为别名 到目前为止 这是我的代码 public func getFiles let folderPath Users timeBro Desktop testfolder let fileManager NSF
  • 优化 - 步进可能表现奇怪:iOS/Unity

    我正在尝试将 Unity 集成到 iOS 应用程序中 我已经遵循了这个教程http www agnosticdev com blog entry swift integrating unity and vuforia ios swift p
  • 从 AppDelegate 启动 ViewController

    我有一个自定义 URL 方案 我想打开某个ViewController当我访问此 URL 时 这不是根 我已经能够做到这一点 剩下的就是推动这一点ViewController进入navigationController来自AppDelega
  • 导出 Firestore 收集数据、编辑并重新上传

    我创建了一个 Google Cloud 帐户并完成了所有设置 但由于某种原因 我无法弄清楚如何将 Firestore 数据导出到 文件 编辑 添加到该文件并重新上传 我读了好几遍这篇文章 https firebase google com
  • Siri - 联系人搜索行为类似于 Skype 的音频通话

    我正在实现一个 VoIP 应用程序 我需要通过 Siri 发起呼叫 我能够通过 Siri 发起呼叫 但问题是 每次启动应用程序时 尽管联系人不在应用程序的联系人列表中 我不知道如何以及在哪里处理这个问题 我的意思是 如果应用程序没有像 Sk
  • 在 iPhone 应用程序中获取路线和路线导航

    我正在开发一款应用程序 该应用程序将重点关注在驾驶时为用户提供路线和逐段指示 他们在驾驶过程中留在应用程序中非常重要 因此我真的不想让他们离开应用程序并转到内置的地图应用程序 我最近对如何包含此功能进行了大量研究 众所周知 这并不容易 因为
  • 无法识别的选择器发送到类

    我已经看到 这是一个常见问题 但我自己找不到任何解决方案 这是代码 class ButtonViewController UIViewController override func viewDidLoad super viewDidLoa
  • didDeselectRowAtIndexPath indexPath 为 nil

    我有一个表视图控制器 它实现了 TableView 委托方法 public override func tableView tableView UITableView didSelectRowAtIndexPath indexPath NS

随机推荐