Firebase iOS开源开发
此仓库包含Firebase iOS SDK源代码的子集。它目前包括FirebaseCore, FirebaseAuth, FirebaseDatabase, FirebaseMessaging, FirebaseStorage和Firestore。
Firebase是一个应用开发平台,它拥有帮助您构建、增长和货币化您的应用的工具。有关Firebase的更多信息,请访问https://firebase.google.com。
注意:此页和仓库是供那些对探索Firebase iOS SDK内部结构感兴趣的人使用的。如果您对使用Firebase iOS SDK感兴趣,请从https://firebase.google.com/docs/ios/setup开始。
上下文
此仓库包含FirebaseCore, FirebaseAuth, FirebaseDatabase, FirebaseMessaging和FirebaseStorage的完整功能开发环境。按照以下使用说明,它们可以通过单元测试、集成测试和参考示例进行开发和调试。
但是请注意,由于pod依赖定义不同,生成的FirebaseCommunity pod与官方Firebase发布pod不兼容。
Firestore尚未与FirebaseCommunity集成。在此期间,它有一个独立的Xcode项目。有关Firebase的更多信息,请参阅Firestore/README.md。
在BuildFrameworks中提供构建可替换静态库框架的说明和脚本。生成的框架可以用于替代CocoaPods提供或zip分发的框架进行开发。
使用方法
$ git clone [email protected]:firebase/firebase-ios-sdk.git
$ cd firebase-ios-sdk/Example
$ pod update
$ open Firebase.xcworkspace
运行单元测试
选择一个方案,然后按 Command-u 命令构建组件并运行其单元测试。
运行示例应用
要运行示例应用和集成测试,您需要示例的 GoogleService-Info.plist
文件。Firebase Xcode 项目包含没有实际值的占位符 plist 文件,但可以用真正的 plist 文件替换。要获得自己的 GoogleService-Info.plist
文件:
- 访问 Firebase 控制台
- 如果您还没有,创建一个新的 Firebase 项目
- 对于您要测试的所有示例应用,创建一个新的 Firebase 应用,其 bundle 标识符与示例应用的标识符相同(例如
com.google.Database-Example
) - 下载产生的
GoogleService-Info.plist
,并替换相应的占位符 plist 文件(例如在 Example/Database/App/ 中)
一些示例应用(如 Firebase 消息传递(Example/Messaging/App))需要特殊的 Apple 功能,您必须更改示例应用以使用您可以在自己的 Apple 开发者账户中控制的唯一 bundle 标识符。
特定组件说明
请参阅以下部分以获取这些组件的任何特殊说明。
Firebase 身份验证
如果您正在开发特定的 Firebase Auth,请参阅AuthSamples/README.md,了解如何构建和运行 FirebaseAuth pod 以及各种示例和测试的说明。
Firebase 数据库
要运行数据库集成测试,请将数据库身份验证规则设置为公开。
Firebase 存储
要运行存储集成测试,请遵循FIRStorageIntegrationTests.m中的说明。
Firebase 消息传递
要使用消息传递,除了在您的Podfile中包含pod 'FirebaseCommunity/Messaging'
外,还应包含pod 'FirebaseInstanceID'
。
推送通知
推送通知只能发送到开发者在开发者门户中特别配置的 App ID。为了实际测试接收推送通知,您需要:
- 将示例应用的 bundle identifier 修改为您在 Apple Developer 账户中拥有的名称,并启用该 App ID 的推送通知。
- 您还需要将您的 APNs 提供商身份验证密钥或证书上传到Firebase控制台,位置在 项目设置 > 云消息 > [您的 Firebase 应用]。
- 请确保您的 iOS 设备已添加到 Apple Developer 门户作为测试设备。
iOS 模拟器
iOS 模拟器无法注册远程通知,也不会接收推送通知。为了接收推送通知,您必须按照上述步骤操作,并在物理设备上运行应用程序。
社区支持的贡献
我们看到了很多对改进Firebase SDK的兴趣和贡献,我们非常感激!我们希望能够使尽可能多的开发者能够使用Firebase并参与Firebase社区。
注意,如果您正在使用CocoaPods并且使用了FirebaseCommunity podspec(本存储库中的那个),则不能从官方Firebase podspec引入Pods,因为这会导致符号冲突。如果您不是出于开发目的在此存储库中使用开源SDK,我们建议您使用常规Firebase pods以获得最佳体验。
要开始使用FirebaseCommunity SDK,这是一个典型的Podfile。
use_frameworks!
target 'MyAppTarget' do
platform :ios, '8.0'
pod 'FirebaseCommunity/Database'
end
- 将
MyAppTarget
替换为您Xcode项目中的目标名称。 - 在Podspec中对每个想要的Firebase组件指定子规格。在上面的例子中使用Database。Storage、Auth和Messaging也是其他选项。
macOS
归功于社区的贡献,现在FirebaseAuth、FirebaseCore、FirebaseDatabase和FirebaseStorage可以在macOS上编译、运行单元测试,并且工作正常。需要一些调整,例如确保仅iOS或仅macOS的代码通过检查TARGET_OS_IOS
和TARGET_OS_OSX
来正确保护。
请注意,Firebase官方不支持macOS,并且此存储库主要针对iOS开发积极开发。虽然我们可以通过Travis捕获基本的单元测试问题,但在某些变化中,SDK在macOS上的工作可能不再像预期的那样。如果您遇到这种情况,请提交一个问题。
路线图
关于Firebase iOS SDK开源计划和方向,请参阅路线图。
贡献
有关向Firebase iOS SDK做出贡献的更多信息,请参阅贡献。
许可协议
本存储库的内容遵照Apache许可证版本2.0进行许可。
您对Firebase的使用受Firebase服务条款约束。