FirebaseDatabaseSwift 10.18.0

FirebaseDatabaseSwift 10.18.0

Google 维护。



  • Google, Inc.


Firebase Apple 开源开发

此仓库包含所有 Apple 平台 Firebase SDK 的源代码,但不包括 FirebaseAnalytics。

Firebase 是一个应用程序开发平台,提供了帮助您构建、增长和货币化应用程序的工具。有关 Firebase 的更多信息,请参阅 官方 Firebase 网站

安装

请查看以下子部分以获取有关不同安装方法的详细信息。如有可用,建议安装任何带有 Swift 后缀的库,以便在用 Swift 编写应用程序时获得最佳体验。

  1. 标准 pod 安装
  2. Swift 包管理器
  3. 从 GitHub 仓库安装
  4. 实验性 Carthage

标准 pod 安装

有关标准 pod 安装的说明,请访问: https://firebase.google.com/docs/ios/setup

Swift包管理器

有关Swift包管理器支持的说明,请参阅Swift Package ManagerSwiftPackageManager.md Markdown文件。

从GitHub安装

这些说明可用于访问Firebase仓库的其他分支、标签或提交。

背景

有关覆盖pod源位置的说明和选项,请参阅Podfile语法参考

访问Firebase源快照

所有官方版本都标记在此存储库中,并通过CocoaPods提供。要访问本地源快照或将发布分支,请使用以下Podfile指令:

要访问通过分支的FirebaseFirestore

pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master'
pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master'

要访问FirebaseMessaging,请通过检查的firebase-ios-sdk存储库版本

pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk'
pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk'

Carthage(仅限iOS)

实验性Carthage分发的说明可以在Carthage.md中找到。

从框架或库中使用Firebase

有关从框架或库中使用Firebase的详细信息,请参阅firebase_in_libraries.md

开发

要在此存储库中开发Firebase软件,请确保您至少有以下软件

  • Xcode 14.1(或更高版本)

CocoaPods仍然是开发的主流方式,但现在该仓库大部分都支持使用Swift Package Manager进行开发。

CocoaPods

安装以下内容

对于您想要开发的pod

pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios

注意:如果CocoaPods缓存过时,您可能需要在执行pod gen命令之前运行pod repo update

注意:将--platforms选项设置为macostvos以针对这些平台进行开发/测试。由于10.2版本,Xcode无法正确处理多平台CocoaPods工作空间。

Firestore有一个自包含的Xcode项目。请参阅Firestore/README Markdown文件。

Catalyst开发

  • 使用pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios命令生成.podspec文件。
  • 在App-iOS构建设置中勾选Mac框。
  • 在设置中为应用程序签名并切换到签名与能力标签。
  • 在项目管理者中点击Pods。
  • 将签名添加到iOS宿主应用程序和单元测试目标中。
  • 选择Unit-unit方案。
  • 运行它来构建和测试。

或者,在每个目标中禁用签名。

  • 转到构建设置选项卡。
  • 点击加号+
  • 选择添加用户定义设置
  • 添加具有NO值的CODE_SIGNING_REQUIRED设置。

Swift包管理器

  • 要启用测试方案,运行./scripts/setup_spm_tests.sh
  • 在Finder中双击或打开Package.swift
  • Xcode将会打开项目。
    • 选择要构建或运行测试套件的库方案。
    • 选择目标平台,通过选择运行目标与方案协同.

添加新的Firebase Pod

有关详细信息,请参阅< группа и doc Caroline.software&project->assem HPV.podspec">AddNewPod”Markdown文件。

管理头文件和导入

有关管理头文件和导入的信息,请参阅HeadersImports”Markdown文件。

代码格式化

为确保代码格式一致,在提交拉取请求(PR)前,请运行脚本 ./scripts/check.sh

GitHub Actions 将验证任何代码更改是否以符合风格的 manner 完成。安装 clang-formatmint

brew install clang-format@16
brew install mint

运行单元测试

选择一个方案,按 Command-u 键构建组件并运行其单元测试。

运行示例应用

要运行示例应用和集成测试,你需要一个有效的 GoogleService-Info.plist 文件。Firebase Xcode 项目包含没有真实值的虚拟 plist 文件,但可以用真实 plist 文件替换。要获取您自己的 GoogleService-Info.plist 文件

  1. 前往 Firebase 控制台
  2. 如果您还没有,创建一个新的 Firebase 项目
  3. 对于您要测试的每个示例应用,创建一个新的 Firebase 应用,使用示例应用的 bundle 标识符(例如,com.google.Database-Example
  4. 下载生成的 GoogleService-Info.plist 并将其添加到 Xcode 项目中。

生成覆盖报告

有关生成覆盖率报告的说明,请参阅 scripts/code_coverage_report/README Markdown 文件。

特定组件说明

以下部分针对这些组件提供任何特定说明。

Firebase Auth

有关 Firebase Auth 的特定开发,请参阅 Auth Sample README,获取有关构建和运行 FirebaseAuth pod 以及各种示例和测试的说明。

Firebase Database

可以通过运行本地 Database Emulator 或生产实例来运行 Firebase Database 集成测试。

要针对本地仿真实例运行,在运行集成测试之前,请调用 ./scripts/run_database_emulator.sh start

要针对生产实例运行,提供有效的 GoogleServices-Info.plist 并将其复制到 FirebaseDatabase/Tests/Resources/GoogleService-Info.plist。在测试运行期间,必须将您的安全规则设置为 公开

Firebase 性能监控

有关具体的 Firebase 性能监控开发,请参阅性能 README,了解构建 SDK 的说明以及性能 TestApp README,了解将性能与开发测试应用集成的说明。

Firebase 存储

要运行存储集成测试,按照StorageIntegration.swift中的说明进行。

推送通知

推送通知只能发送到开发门户中特别配置的应用 ID。为了测试接收推送通知,您需要

  1. 将示例应用的包标识符更改为您在苹果开发者帐户中拥有的内容,并启用该应用 ID 的推送通知。
  2. 您还需要将您的 APNs 提供商身份验证密钥或证书上传到Firebase控制台,具体位置在项目设置 > 云消息 > [您的 Firebase 应用]
  3. 确保您将iOS设备添加到您的苹果开发者门户作为测试设备。

iOS 模拟器

iOS模拟器无法注册远程通知并且不会接收推送通知。要接收推送通知,请按照上述步骤操作并在物理设备上运行应用。

在苹果平台上使用 Firebase 构建

Firebase 8.9.0 引入了官方的 macOS、Catalyst 和 tvOS 的测试版支持。watchOS 继续得到社区支持。感谢社区贡献了众多多平台 Pull Request。

目前,大多数 Firebase 产品在苹果平台上都有可用。还有一些差距,尤其是在 watchOS 上。有关当前支持矩阵的详细信息,请参阅 Firebase 文档中的此图表

watchOS

得益于社区贡献,许多 Firebase SDK 现在在 watchOS 上可以编译、运行单元测试并正常工作。请参见独立手表应用程序示例

请注意,watchOS 不是 Firebase 的官方支持。虽然我们可以通过 GitHub Actions 捕获基本的单元测试问题,但在某些情况下,SDK 可能不再在 watchOS 上按预期工作。如果您遇到这种情况,请提交问题

在控制台进行应用程序设置期间,您可能会进入一个提到类似“检查应用程序是否与我们的服务器进行了通信”的步骤。这依赖于分析,不会在 watchOS 上工作。《**可以安全地忽略此消息并继续**》,其余的 SDK 将按预期工作。

额外的 Crashlytics 说明

  • watchOS 的支持有限。由于 watchOS 的限制,mach 异常和信号崩溃不会被记录。(SwiftUI 中的崩溃生成 mach 异常,因此不会记录)

合并

由于社区的贡献,FirebaseCombineSwift 支持 Apple 的 Combine 框架。此模块目前正在开发中,尚不支持在生产环境中使用。更多详情请参见 文档

路线图

有关 Firebase Apple SDK 开源计划和方向的更多信息,请参阅 路线图

贡献

有关为 Firebase Apple SDK 做贡献的更多信息,请参阅 贡献

许可证

此存储库的内容根据 Apache 许可证版本 2.0 许可。

您对 Firebase 的使用受 Firebase 服务条款约束。