FirebaseFirestoreInternal 11.0.0

FirebaseFirestoreInternal 11.0.0

Google维护。



 
依赖于
FirebaseAppCheckInterop~> 11.0
FirebaseCore~> 11.0
abseil/algorithm~> 1.20240116.1
abseil/base~> 1.20240116.1
abseil/container/flat_hash_map~> 1.20240116.1
abseil/memory~> 1.20240116.1
abseil/meta~> 1.20240116.1
abseil/strings/strings~> 1.20240116.1
abseil/time~> 1.20240116.1
abseil/types~> 1.20240116.1
gRPC-Core~> 1.65.0
gRPC-C++~> 1.65.0
leveldb-library~> 1.22
nanopb~> 3.30910.0
 

  • by
  • 谷歌公司


Firebase 苹果开源开发

此仓库包含所有(除非 FirebaseAnalytics)Apple 平台的 Firebase SDK 源代码。

Firebase 是一个应用开发平台,提供帮助你构建、扩展和盈利应用的各种工具。有关 Firebase 的更多信息,可以在官方 Firebase 网站上找到。

安装

下面的小节详细介绍了不同安装方法的信息。如果可用,建议安装任何带有 Swift 后缀的库,以在用 Swift 编写应用程序时获得最佳体验。

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

标准 pod 安装

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

Swift 包管理器

有关 Swift 包管理器支持的说明可以在 SwiftPackageManager.md Markdown 文件中找到。

从 GitHub 安装

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

背景

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

访问 Firebase 源快照

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

要通过分支访问 Firestore

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'

要通过从 firebase-ios-sdk 仓库中签出的版本访问 FirebaseMessaging

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 {这里填写名称}.podspec --local-sources=./ --auto-open --platforms=ios
  • 在App-iOS构建设置中勾选Mac
  • 在设置法的签名与能力标签中签名App
  • 在项目管理器中点击Pods
  • 为iOS宿主应用和单元测试目标添加签名
  • 选择单元测试方案
  • 运行以构建和测试

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

  • 进入构建设置标签
  • 点击+
  • 选择添加用户定义设置
  • 添加CODE_SIGNING_REQUIRED设置,值为NO

Swift 包管理器

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

添加新的Firebase Pod

有关详细信息,请参阅AddNewPod Markdown文件

管理头文件和导入

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

代码格式化

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

GitHub Actions将验证任何代码更改是否符合样式规范。安装clang-formatmint

brew install clang-format@17
brew install mint

运行单元测试

选择方案并按下Command-u构建组件及其单元测试

运行示例应用

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

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

覆盖率报告生成

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

特定组件说明

请参阅以下部分中有关那些组件的任何特殊说明

Firebase身份验证

有关Firebase身份验证开发的详细信息,请参阅Auth Sample README以获取构建和运行FirebaseAuth pod以及各种样本和测试的说明

Firebase数据库

可以针对本地运行的数据库模拟器或者针对生产实例运行Firebase数据库集成测试

要针对本地模拟器实例运行,请在运行集成测试之前执行./scripts/run_database_emulator.sh start

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

Firebase性能监控

有关Firebase性能监控开发的详细信息,请参阅性能README以获取构建SDK的说明,以及性能TestApp README以获取将性能与dev测试应用集成的说明

Firebase存储

要运行存储集成测试,请按照StorageIntegration.swift中的说明操作

推送通知

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

  1. 将示例应用的bundle标识符更改为您在Apple Developer账户中拥有的内容,并为此App ID启用推送通知。
  2. 您还需要将您的APNs提供程序身份验证密钥或证书上传到Firebase控制台,具体位置为:项目设置 > 云消息 > [您的Firebase应用]
  3. 请确保您的iOS设备已添加到您的Apple Developer门户中作为测试设备。

苹果模拟器

苹果模拟器无法注册远程通知,也不会接受推送通知。为了接受推送通知,请遵循上述步骤,并在物理设备上运行应用。

在苹果平台上使用Firebase构建

Firebase 8.9.0引入了对macOS、Catalyst和tvOS的官方beta支持。watchOS继续由社区支持。感谢社区贡献了众多多平台PR。

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

watchOS

感谢社区的贡献,许多Firebase SDK现在可以在watchOS上进行编译、运行单元测试和工作。请参阅独立手表应用示例

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

在控制台中设置应用时,您可能会到达一个提到类似“检查应用是否已与我们的服务器通信”的步骤。这依赖于分析,在watchOS上无法工作。可以安全忽略该消息并继续,其余的SDK将按预期工作。

额外的Crashlytics说明

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

Combine

感谢社区的贡献,FirebaseCombineSwift包含了对Apple的Combine框架的支持。此模块目前正在开发中,并且尚不支持在生产环境中使用。有关更多详细信息,请参阅文档

路线图

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

贡献

有关向Firebase苹果SDK贡献更多信息,请参阅贡献

许可

本存储库的内容受Apache许可证,版本2.0的许可。

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