安装和设置(Apple 平台)

Firebase Realtime Database 是一种托管在云端的数据库。数据以 JSON 格式存储并实时同步到所连接的每个客户端。当您使用我们的 Android、iOS 和 JavaScript SDK 构建跨平台应用时,所有客户端都共享一个 Realtime Database 实例并自动接收包含最新数据的更新。

Firebase Realtime Database 适用于所有 Apple 平台,包括 iOS、macOS、macOS Catalyst、tvOS 和 watchOS。它不适用于轻 App (App Clip)。虽然本页具体示例中的设置说明提及的均为 iOS,但这些说明是通用的,适用于所有 Apple 目标平台。

前提条件

  1. 安装 Firebase SDK。
  2. 在 Firebase 控制台中将您的应用添加到您的 Firebase 项目。

创建数据库

  1. 前往 Firebase 控制台的 Realtime Database 部分。系统将会提示您选择一个现有的 Firebase 项目。按照数据库创建工作流操作。

  2. 为您的 Firebase Security Rules选择一个初始模式:

    测试模式

    此模式适合刚开始使用移动和 Web 客户端库的开发者,但会允许任何人读取和覆盖您的数据。测试完成后,请务必查看了解 Firebase Realtime Database 规则部分。

    如果是刚开始使用 Web、Apple 或 Android SDK,请选择测试模式。

    锁定模式

    拒绝来自移动和 Web 客户端的所有读写操作。经过身份验证的应用服务器仍然可以访问您的数据库。

  3. 为数据库选择位置。

    新数据库的网址将采用下列格式之一,具体取决于数据库的位置:

    • DATABASE_NAME.firebaseio.com(位于 us-central1 的数据库)

    • DATABASE_NAME.REGION.firebasedatabase.app(位于所有其他位置的数据库)

  4. 点击完成。

启用 Realtime Database 时,也会在 Cloud API 管理器中启用相应 API。

将 Firebase Realtime Database 添加到您的应用

使用 Swift Package Manager 安装和管理 Firebase 依赖项。

  1. 在 Xcode 中打开您的应用项目,依次点击 File(文件)> Add Packages(添加软件包)。
  2. 出现提示时,添加 Firebase Apple 平台 SDK 代码库:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. 选择 Realtime Database 库。
  5. 将 -ObjC 标志添加到目标 build 设置的“其他链接器标志”部分。
  6. 完成之后,Xcode 将会自动开始在后台解析和下载您的依赖项。

配置 Realtime Database Security Rules

Realtime Database 提供了声明式规则语言,可用于定义数据的结构、将数据编入索引的方式,以及何时可以在其中读取和写入数据。

设置 Firebase Realtime Database

您必须先初始化 Firebase,然后才能创建或使用 Firebase 应用引用 (reference)。如果您已为其他 Firebase 功能执行此操作,可以忽略此步骤。

  1. 在 UIApplicationDelegate 中导入 FirebaseCore 模块,以及您的应用委托 (app delegate) 使用的所有其他 Firebase 模块。 例如,使用 Cloud Firestore 和 Authentication:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. 在应用委托的 application(_:didFinishLaunchingWithOptions:) 方法中配置一个 FirebaseApp 共享实例:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. 如果您使用的是 SwiftUI,则必须创建应用委托并通过 UIApplicationDelegateAdaptor 或 NSApplicationDelegateAdaptor 将其附加到 App 结构体。您还必须停用应用委托调配。如需了解详情,请参阅 SwiftUI 说明。

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. 创建对您数据库的引用并指定要写入数据的位置。

    Swift

    注意:此 Firebase 产品不适用于 App Clip 目标。
    var ref: DatabaseReference!
    
    ref = Database.database().reference()

    Objective-C

    注意:此 Firebase 产品不适用于 App Clip 目标。
    @property (strong, nonatomic) FIRDatabaseReference *ref;
    
    self.ref = [[FIRDatabase database] reference];

后续步骤