Contributing

This is a longer roadmap than we can implement internally and we very much welcome community contributions.

See the information about Development setup here and Contributing for more information on the mechanics of contributing to the Firebase iOS SDK.

Modernization - More Swifty

As we go into 2022, it's a top priority for the Firebase team to improve usability and functionality for Swift developers. We welcome the community's input and contribution as we work through this.

Please upvote existing feature requests, add new feature requests, and send PRs.

See Contributing.md for full details about contributing code to the Firebase repo.

Thanks in large part to community contributions, we already have several Swift improvements:

Phase 1 - Address Low Hanging Fruit for all Firebase Products

  • Swift API tests
  • async/await API evaluation, tests, and augmentation
  • Fix non-Swifty APIs
  • Fill API gaps
  • Property Wrappers (Not necessarily low hanging, but can be high value)
  • Identify larger projects for future phases

APIs

Continue to evolve the Firebase API surface to be more Swift-friendly. This is generally done with Swift specific extension libraries.

FirebaseStorageSwift is an example that extends FirebaseStorage with APIs that take advantage of Swift's Result type. FirebaseFirestoreSwift is a larger library that adds Codable support for Firestore.

Add more such APIs to improve the Firebase Swift API.

More examples in the feature requests.

SwiftUI

Firebase should be better integrated with SwiftUI apps. See SwiftUI related issues.

Swift Async/Await

Evaluate impact on Firebase APIs of the Swift Async/await proposal. For example, Objective C callback APIs that return a value do not get an async/await API automatically generated and an explicit function may need to be added. See these Firebase Storage examples.

Combine

Firebase has community support for Combine (Thanks!). See Combine Readme for usage and project details.

More complete Apple platform support

Continue to expand the range and quality of Firebase support across all Apple platforms.

Expand the current non-iOS platform support from community supported to officially supported.

Fill in the missing pieces of the support matrix, which is primarily watchOS for several libraries.

Getting Started

Quickstarts

Modernize the Swift Quickstarts. Continue the work done in 2020 and 2021 that used better Swift style, SwiftUI, Swift Package Manager, async/await APIs, and multi-platform support for Analytics, ABTesting, Auth, Database, Functions, Performance, and RemoteConfig.

Product Improvements

Indicate your interest in contributing to a bug fix or feature request with a comment. If you would like someone else to solve it, add a thumbs-up.

If you don't see the feature you're looking for, please add a Feature Request.

Improving the contributor experience

Please help others to be contributors by filing issues and adding PRs to ease the learning curve to develop, test, and contribute to this repo.