The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Bugs Fixed
- Fixed an issue that prevented the `login` function from working correctly with Sign in with Apple and anonymous account. This was caused by the fact that the Firebase error returned for these cases is different: please note that SIWA credentials are not reusable, so if a user is signing into an account that already exists while being logged-in as anonymous, they will have to sign in twice. This process is handled entirely by RxFireAuth.
This version introduces breaking changes to support [Email Enumeration Protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) and improve code quality.
**Added**
- The library now supports projects that have Email Enumeration Protection turned on.
- Firebase is now up to date to the latest version (#10).
- `verifyAndChange` function is now available to support the new Firebase email change flow.
**Improved**
- `login(email:password:allowMigration:)` is now just a shorthand for `login(with:updateUserDisplayName:allowMigration:)`.
- `LoginCredential` has been converted to an enum which is now called `Credentials`.
- `LoginCredential.Provider` is now a separate enum called `AuthenticationProvider`.
**Deprecated**
- `accountExists` is now deprecated, following the Firebase SDK corresponding function. It will be removed once it's removed by Firebase.
- `loginWithoutChecking` is now deprecated, as there is now no difference between invoking this function and any other login function. All login functions now handle errors according to the existing logic, as it's no longer possible to query the account availability beforehand.
- `updateEmail` is now deprecated, following the Firebase SDK corresponding function. Use the new `verifyAndChange` instead.
All dependencies are now updated to the latest versions.
**Improved**
- Updated the Firebase SDK to the latest version.
- Updated RxSwift.
**Added**
- The library is now compatible with Mac Catalyst.
**Improved**
- Google SignIn has been removed and it has been replaced by `AppAuth` on iOS as well.
**This version increases the minimum iOS version to iOS 10 and the minimum macOS version to 10.12, following the same requirements from the Firebase SDK version 7**.
*To use this library in projects targeting Apple Silicon, you must use Swift Package Manager.*
Added
- It's now possible to get the user's `accessToken`.
**Added**
- The library is now compatible with macOS and Swift Package Manager. (#7 and #8)
**Improved**
- When `GoogleSignIn` is not available (i.e. on macOS or when the library is included via Swift Package Manager), it is automatically replaced by an implementation of `AppAuth`.
**Fixed**
- #6 Login handlers are no longer retained forever.
**Added**
* New `signInWithGoogle` method to use [Google Sign-in](https://developers.google.com/identity/sign-in/ios/start).
* New `confirmAuthenticationWithApple` and `confirmAuthenticationWithGoogle` methods to confirm authentication of a user through login providers.
**Improved**
* The `confirmAuthentication` function now uses the same logic as other login providers.
**Added**
* Add `deleteUser(resetToAnonymous:)` that deletes the currently logged-in account.
* Add `updatePassword(newPassword:)` to update or set a password for the currently logged-in account.
* Add `authenticationProviders` property to `UserData` to enumerate the authentication providers of a user *(only known providers are mapped)*.
**Improved**
* Improve example project.