Commit Graph
45 Commits
Author SHA1 Message Date
Paul Beusterien 672256e11e C API for Firebase Version (#6690) 2020-10-07 15:03:20 -07:00
Maksym Malyhin a3a59c1bfc FIS: require projectID and valid API Key format (#6678)
* FIRInstallations validation: remove GCMSenderID fallback for missing projectID

* FIRInstallationsIDController: remove GCMSenderID fallback for  missing projectID

* Add API Key validation

* Changelog

* changelog

* Constant for API key lenght

* array] -> alloc] init]

* typo

* message

* ./scripts/style.sh

* Fix dummy API key in integration tests

* Update dummy API Keys to match the expected format

* debug test quickstart with no xcpretty

* fix debug

* Use debug QS repo branch

* print debug

* Add missing allowed characters `-`, `_`

* Nicer dummy API Keys

* Comment

* Revert "Use debug QS repo branch"

This reverts commit 69739dd6ae.

* Revert "fix debug"

This reverts commit 84fcbc7543.

* Revert "debug test quickstart with no xcpretty"

This reverts commit 1fa21ed62a.
2020-10-07 17:25:03 -04:00
Paul Beusterien 83e898ab5c One Firebase version (#6634) 2020-10-02 12:26:22 -07:00
Maksym Malyhin f84d094f06 FIS: don't log anything on success validation (#6635) (#6636) 2020-10-01 15:07:21 -04:00
Paul Beusterien 5d0a1c8ccb Merge remote-tracking branch 'origin/firebase7-main' into pb-merge-firebase7 2020-09-30 14:23:40 -07:00
Maksym Malyhin d26b543572 FIS: Additional FIRInstallationsItem validation (#6570)
* FIS API tests for no FID in response

* FIRInstallationsIDControllerTests: test names

* FIRInstallationsIDControllerTests: corrupted storage tests

* FIRInstallationsItem validation

* Fix FIRInstallationsItem.IIDDefaultToken copy

* Improve error description.

* FIRInstallationsItem validation error

* FIRInstallationsItem validation tests

* ./scripts/style.sh

* FIRInstallationsIDController: validate stored installation

* FIRInstallationsAPIService installation validation

* Changelog
2020-09-30 14:02:03 -04:00
Paul Beusterien f2bcd5d82b Make all GoogleUtilities APIs public (#6588) 2020-09-29 07:26:10 -07:00
Maksym Malyhin 7895478eba FirebaseInstallations: API requests backoff (#6232)
* FirebaseInstallations: API requests backoff (#6207)

* FIRInstallationsBackoffController introduced

* FIRCurrentDateProvider introduced

* FIRInstallationsBackoffControllerTests

* style

* FIRInstallationsBackoffController implementation

* WIP: tests

* Response to backoff event mapping

* FIRInstallationsIDController: integration with FIRInstallationsBackoffController

* Remove not existing error code.

* FIRInstallationsIDController: integration with FIRInstallationsBackoffController

* FIRInstallationsIDController: depend on FIRInstallationsBackoffControllerProtocol

* FIRInstallationsIDControllerTests: supplement tests with backoff validation

* TODOs

* TODO

* API docs

* Header import fixed

* FIS backoff adjustments and tests (#6230)

* Maximum backoff interval 30 min

* Errors adjusted

* Tests updated

* Exclude 401 and 404 from backoff as autorecoverable

* comments

* FIS 1.6.0 changelog (#6234)

* Change log version fixed
2020-08-10 09:36:04 -04:00
Maksym Malyhin abc8283e03 FirebaseInstallations: use ephemeral NSURLSession to prevent caching of request/response (#6226)
* FirebaseInstallations: use ephemeral NSURLSession to prevent caching of request/response

* Changelog
2020-08-07 11:35:25 -04:00
Paul Beusterien ebe6365ceb Installations - new public header structure (#6174) 2020-07-31 07:40:55 -07:00
Paul Beusterien 42e89d3e66 Initial check imports script (#5843) 2020-06-18 12:12:37 -07:00
Paul Beusterien c07c89ee75 Repo-relative imports for Installations (#5832) 2020-06-17 07:26:40 -07:00
Paul Beusterien 3f556ddb9e Update GoogleUtilities' clients with repo-relative imports (#5824) 2020-06-16 09:05:29 -07:00
Paul Beusterien d4621a636f Use preserve_paths instead of CocoaPods private (#5758) 2020-06-09 05:21:28 -07:00
Maksym Malyhin aa14b5cdcb FIS: disable Auth token auto fetch (#5656)
* FIS: disable Auth token auto fetch

* Punctuation

* Changelog

* Don't fail tests when no default app was created

* style
2020-05-20 17:26:10 -04:00
Maksym Malyhin e5a1360e2c FIS - make server error logs more readable (#5654)
* FIS - make server error logs more readable

* Changelog
2020-05-20 12:48:16 -04:00
Maksym Malyhin de3b856cf2 Mac OS FIS: use Firebase App ID as a suffix to Keychain service name Mac OS (#5603)
* FIS: use bundle ID as a prefix to Keychain service name on Mac OS

* Remove "storage" from var name

* Run ./scripts/style.sh

* Use Firebase App ID as a suffix to Keychain service name on Mac OS
2020-05-15 08:55:43 -04:00
Maksym Malyhin 7bd8faaaa4 Move FIRSecureStorage to GoogleUtilities (#5329)
* FIRSecureStorage -> GULKeychainStorage: renamed and moved to GoogleUtilities

* FIS updated to GULKeychainStorage

* Run ./scripts/style.sh

* Headers order

* GULKeychainUtils API docs

* GULKeychainStorage: require Keychain service name
2020-04-09 17:06:41 -04:00
Maksym Malyhin dd70b46370 Installations: access FIRHeartbeatInfo from a background thread (#5114)
* FIS: assert heartbeat storage is not accessed in main thread.

* FIS: Access hearbeat storage from a background queue.
2020-03-16 17:29:11 -04:00
Maksym Malyhin 1bc3255436 Firebase Installations: validation of FIROptions parameters (#4683)
* FIS: Throw exception on incomplete Firebase config.

* API docs updated.

* FirebaseInstallations bump minor version: 1.1.0

* Fix tests

* Text fixed

* Make exception message more informative

* Fix Remote Config tests.

* Tests updated to use GCMSenderID if projectID is not available.

* Use `GCMSenderID` when `projectID` is not available.

* ./scripts/style.sh

* Comments

* GCMSenderID and projectID validation updated.

* Comment

* FirebaseInstallations: version bump to 1.0.1.

* FIS changelog

* FirebaseInstallations: version bump to 1.1.0

* FIS and Core changelogs.

* Changelogs remove GCMSenderID

* Typo

* Typo

* fix link

* Revert Core changelog

* FIS changelog fix.
2020-01-16 16:13:49 -05:00
Maksym Malyhin 6004f9c490 Revert "FitebaseInstallations: fix create FID race condition (#4576)" (#4598)
This reverts commit 89bd10ff8e.
2020-01-06 19:02:56 -05:00
Maksym Malyhin 89bd10ff8e FitebaseInstallations: fix create FID race condition (#4576)
* FIS: test duplicated Create FID API requests.

* Fix getInstallationItem race condition.
2020-01-02 17:02:23 -05:00
Chen Liang e4456c011b Enables Firebase Messaging push notification function on watch only and independent watch app (#4016) 2019-12-23 16:45:19 -08:00
Maksym Malyhin e118f2c5e6 Apply static analyzer issue fix (cl/284637845) (#4544) 2019-12-23 11:41:47 -05:00
Maksym Malyhin 7b63ce904b FirebaseInstallations - extensions support (#4495)
* FIS - use shared user defaults if `accessGroup` is set.

* Use `FIROptions.appGroupID` to set keychain `accessGroup`

* ./scripts/style.sh
2019-12-13 17:06:07 -05:00
Vinay Guthal bc071a88d0 Add fis heartbeat support (#4353)
* installapiservice

* insallations api test

* update tests

* add mock tests

* add installations api
2019-11-25 11:21:32 -08:00
Maksym Malyhin f6e1eea53c FIS: IID incompatible version exception. (#4258)
* FIS: IID incompatible version exception.

* FirebaseInstallations.podspec: set preprocessor flags based on env vars.

* FIS Travis: set required env vars

* /scripts/style.sh

* FIS: FIRInstantiationTimingEagerInDefaultApp

* FIS: FIRInstantiationTimingAlwaysEager
2019-11-07 13:26:52 -05:00
Maksym Malyhin 76b47085c9 FIS: Use IID auth token to authorize IID migration. (#4224)
* `FIRInstallationsIIDTokenStore` introduced. `FIRInstallationsIIDCheckinStore` removed.

* FIRInstallationsIIDTokenStoreTests

* Run ./scripts/style.sh

* FIRInstallationsIIDTokenStore implementation.

* ./scripts/style.sh

* Fix tvOS and macOS availability.

* Rename IIDAuthToken -> IIDDefaultToken

* FIRInstallationsIIDTokenStoreTests: fix flaky IID token removal

* ./scripts/style.sh
2019-11-04 11:45:17 -05:00
ChaoqunCHEN a507b40f17 Add bundle id http header to FIS requests (#4194)
* Add bundle id http header to FIS requests

* Add bundle id http header to FIS requests
2019-10-31 08:50:07 -07:00
Maksym Malyhin 48a2a9e0fe Keychain: use kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly instead of deprecated since iOS 13 kSecAttrAccessibleAlwaysThisDeviceOnly. (#4169) 2019-10-25 17:14:02 -04:00
Maksym Malyhin a34540f9cb FIS: race condition (#4148)
* FIRInstallationsSingleOperationPromiseCache: a failing test for race condition added.

* ./scripts/style.sh

* FIRInstallationsSingleOperationPromiseCache: synchronize entire code blocks not relying on `atomic` property. The atomic property synchronization was insufficient to synchronize `newOperationHandler()`.

* ./scripts/style.sh
2019-10-23 20:32:23 -04:00
Maksym Malyhin af6f4e512b FIS: Make sure refreshed auth token is stored to the storage. (#4146)
* FIRInstallationsIDControllerTests: test refreshed token is stored.

* FIRInstallationsIDControllerTests: all required tests updated to expect refreshed token to be stored.

* Tests: assert all FBLWaitForPromisesWithTimeout

* FIRInstallationsIDController: saving refreshed token implemented.

* FIRInstallationsIDController: duplicated code removed.
2019-10-23 14:22:28 -04:00
Maksym Malyhin 65ec051abd FIS: Complex unrecoverable error handling reverted and replaced by a simple log message. (#4120)
* Revert "FIS: stored registration error timeout (#4032)"

This reverts commit 37747dbb3d.

* Revert "FirebaseInstallations: CreateInstallation API request error handling (#4024)"

This reverts commit 27384c0a2c.

* Complex unrecoverable error handling reverted and replaced by a simple log message.
2019-10-21 09:37:57 -04:00
Maksym Malyhin 8c1168d188 FirebaseInstallation: send IID checkin data on IID migration. (#4114)
* FIRInstallationsIIDCheckinStore with tests introduced.

* FIRInstallationsIIDCheckinStore implementation and tests.

* Store IID checkin data.

* FIRInstallationsIDControllerTests: IID checkin migration tests.

* FIRInstallationsIDController: IID checkin migration logic.

* style.sh

* FIRInstallationsAPIServiceTests: IID migration header test.

* FIRInstallationsAPIService: send IID checkin data in CreateInstallation API request.

* FIRInstallationsIIDCheckinStoreTests: fix FIRInstanceIDCheckinStore subDirectoryName.

* FIRInstallationsIIDCheckinStoreTests: fix missing sub directory.

* Disable FIRInstallationsIntegrationTests for macOS.

* FIRInstallationsIntegrationTests: properly disable all tests on macOS.

* Fix.
2019-10-18 16:21:38 -04:00
Maksym Malyhin 2a43d214f1 FirebaseInstallations: re-generate Installation on HTTP 401 and 404 (#4079)
* WIP: FID re-generating introduced.

* WIP: FID regenerating tests.

* FIS regenerate: tests and fixes.

* Cleanup.
2019-10-15 17:37:07 -04:00
Maksym Malyhin 179dff24c8 FIRInstallationsAPIService: Retry API request on HTTP 500. (#4052) 2019-10-11 16:18:17 -04:00
Maksym Malyhin 37747dbb3d FIS: stored registration error timeout (#4032)
* Registration error date introduced. Timeout test added.

* Registration error timeout implemented.

* Test the registration error date is set and stored.
2019-10-10 15:31:56 -04:00
Maksym Malyhin 27384c0a2c FirebaseInstallations: CreateInstallation API request error handling (#4024)
* Unrecoverable errors: basic unit tests defined.

* Registration Error models introduced.

* Storage: storage version handling fix.

* Formatting.

* Get Installation: return registration error from previous attempt.

* Retry registration request on configuration change.

* Store unrecoverable registration error.

* FIRInstallations Swift API improvements.

* Add Swift integration tests

* Revert "Add Swift integration tests"

This reverts commit a8e06418be.

* Invalid config integration tests and fixes.

* Missing tests and cleanup.

* ./scripts/style.sh

* Log messages.

* More elaborative log message. Typo.

* Reorganize imports and umberella header to fix Swift compilation errors.

* Formatting.
2019-10-09 13:47:58 -04:00
Maksym Malyhin 99597f9038 FirebaseInstallations FID generation: don't cut UUID (#3978)
* Generate FID: make sure no UUID data is cut.

* Comments

* Use `UUIDLength` variable instead of numbers.

* Upper case for acronyms.
2019-10-02 16:51:02 -04:00
Maksym Malyhin d29db9ffa8 FIRInstallations: use lazy initialization to prevent too early FID requests. (#3444) 2019-07-29 09:42:32 -04:00
Maksym Malyhin aff8695a12 Firebase Installations: delete IID on default app installation delete. (#3428)
* FIRInstallationsIDControllerTests: test deleting IID.

* FIRInstallationsIDControllerTests: test no IID import for non-default app.

* FIRInstallationsIDController: use and delete IID for default app.
2019-07-24 16:24:20 -04:00
Maksym Malyhin 432a1805c5 Firebase Installations: update API response handling (#3415) 2019-07-24 12:48:23 -04:00
Maksym Malyhin 7566d8d4e3 FirebaseInstallations: debug logging (#3409)
* FIRInstallationsLogger introduced.

* Coders version mismatch logs.

* FIRInstallationsAPIService and FIRInstallationsIDController debug logs.

* FIRInstallationsLogger: specific error codes for messages.
2019-07-22 16:00:32 -04:00
Maksym Malyhin 4a3a4f3405 Firebase Installations - adjustments to import to google3 (#3383)
* Don't use #import <FirebaseCore/FIROptions.h>.

* Don't use #import <FirebaseCore/FirebaseCore.h>

* Umbrella header added.

* Disable integration tests so far.

* Run ./scripts/style.sh

* Typos
2019-07-18 13:36:03 -04:00
Maksym Malyhin 8e73ddb222 Firebase Installations as standalone SDK (#3376) 2019-07-17 20:07:35 -04:00