You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 5.5 如何结合 async/await 使用 Firebase Realtime Database?

Firebase Realtime Database 原生 async/await 支持说明

首先可以明确:Firebase 官方已经原生提供了 Realtime Database 对应的 async/await 接口,不需要你手动通过 withCheckedThrowingContinuation 封装,也不需要依赖 Xcode 自动合成接口。

具体相关说明如下:

  • 适配版本要求:你需要将项目中的 Firebase SDK 升级到 8.0.0 及以上版本,同时项目 Swift 版本 ≥5.5、iOS 部署目标 ≥iOS 13,即可直接使用官方提供的异步接口。
  • 常见操作的用法示例:
    1. 单次数据查询:原来需要传入 completion 回调的 observeSingleEvent 方法,现在可以直接调用 getData() 异步方法:
      // 新写法
      let snapshot = try await ref.child("user/123").getData()
      let value = snapshot.value as? [String: Any]
      // 错误会通过 try 直接抛出,不需要在回调中处理
      
    2. 持续实时数据监听:官方针对长期监听场景提供了 AsyncSequence 适配,你可以通过 for-await-in 语法直接遍历实时推送的快照:
      let stream = ref.child("chat/messages").observe(.value).values
      for try await snapshot in stream {
          // 处理每次收到的最新数据快照
      }
      
    3. 写入、更新、删除、事务等其他所有异步操作,官方都已经提供了对应的 async 版本接口,直接调用即可。
  • 关于 Xcode 自动合成的说明:Xcode 本身不会自动为第三方的闭包回调 API 生成 async 适配接口,只有第三方库官方主动适配 Swift Concurrency 规范后,你才能直接调用对应的异步方法。

内容的提问来源于stack exchange,提问作者Anton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:36:00