Commit Graph
25 Commits
Author SHA1 Message Date
Andrew Heard 7db032cbfb Update async/await availability comments to "iOS 13+" (#12261) 2024-01-10 14:38:36 -05:00
Paul Beusterien 0fe8385fe6 Remove unnecessary compiler checks for Concurrency support (#12232) 2024-01-03 07:04:02 -08:00
Paul Beusterien 393d768eb4 Update CI to Xcode 15.1 (#12216) 2023-12-27 07:39:47 -08:00
Andrew Heard 9460b8226e [Database] Remove outdated FLevelDBStorageEngineTests test (#11478)
The test `testExtremeDoublesAsServerCache` only applies to iOS < 11. Removed the test since our minimum deployment target is already iOS 11. This also resolves the test failure on visionOS.
2023-06-26 11:59:50 -04:00
Nick Cooke 96d07fe973 [Infra] Favor SWIFTPM_MODULE_BUNDLE macro over C function across repo (#10625)
* [Infra] Favor SWIFTPM_MODULE_BUNDLE in RC unit tests

* Favor across repo
2022-12-29 18:23:29 -05:00
Jan WyszynskiandRyan Wilson 8a9e385eb4 Make getDataWithCompletionBlock snapshot nullable (#9655)
* Make getDataWithCompletionBlock snapshot nullable

* fix DatabaseAPITests

* update changelog

* fix changelog

* breaking change

* Capitalize Swift

Co-authored-by: Ryan Wilson <wilsonryan@google.com>
2022-04-19 20:27:31 -04:00
Ryan Wilson 73279db127 Enable async/await APIs for iOS 13, etc. (#9540)
* Enable async/await APIs for iOS 13, etc.

This bumps the required compiler version to 5.5.2 which was included in
Xcode 13.2, where backporting was first introduced.

This breaks less developers and enables developers who aren't using
these APIs to still compile using Xcode 13.0 and 13.1.

As far as I can tell, the only breakage this includes now is developers
who are using Xcode 13.0 or 13.1, targeting iOS 15 and using one of
these 7 APIs. It will result in a compiler error and they'll have to
either use the completion handler version or upgrade to Xcode 13.2+ to
fix the compilation error.

* Missed checks, CHANGELOG

* Fixed avialability, added watchOS for RTDB

* Moved to watchOS 7 for all async/await APIs to match platform support
2022-04-01 09:56:33 -04:00
Nick Cooke a09083f9d0 [v9] Reorganize FirebaseCore* modules (#9482)
* [skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`

* Reorganize FirebaseCore libraries for SPM and CP

* [skip ci] Revert "[skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`"

This reverts commit 2a837e39708c21b0a324743ab226bd6c01047de7.

* Review and fix CI

* Remove `heartbeat_logging.yml` and add `core_internal.yml`

* Remove trailing whitespace

* Fix more whitespace 😞

* Fix `core_internal.yml` scheme name

* Update `check_imports.swift` and TODO

* Review

* Add FirebaseCoreInternal pod to Firestore example's Podfile

* [skip ci] Review - remove TODOs

* [skip ci] Remove duplicate `XCTest` import
2022-03-23 06:08:14 -07:00
Paul Beusterien 4f793064da Set up Core Internal for SPM (#9298) 2022-03-23 06:07:17 -07:00
Paul Beusterien 5e8790d78a Update to SwiftFormat 0.49.2 (#9239) 2022-01-21 13:03:15 -08:00
Morten Bek Ditlevsen f9b583963e Attempt at fixing issue with getting next and previous push id (#8817) 2022-01-10 16:16:52 -08:00
Nick Cooke d6e7bb7d38 Update async-related directives in Swift build tests (#9063)
* Update directives in Swift build tests

* Fix CoreAPITests

* Fix CoreAPITests 2

* Fix installations and style
2021-12-09 14:30:43 -05:00
Paul Beusterien e33695557a Fix URL handling bug when path is a substring of host (#8880) 2021-11-01 09:55:14 -07:00
Paul Beusterien 62827f36b2 Fix DatabaseUnitSwift Xcode 13.0.0 build (#8837) 2021-10-20 15:18:41 -07:00
Paul Beusterien 33692eb578 Fix Remote Config Integration CI (#8774) 2021-10-11 07:38:51 -07:00
Nick Cooke 540b7e8a9a Get Database Swift API Test building on Xcode13b4 (#8466)
* Test builds for Xcode13b4

* Fix comment mistake
2021-07-30 13:07:22 -04:00
Jesus Crespo 7633a59a18 Database API build tests (#8396)
* Add tests for Database and DatabaseQuery

* Add tests for DatabaseReference

* Add tests for DataEventType

* Add tests for DataSnapshot

* Add tests for MutableData

* Add tests for ServerValue

* Add tests for TransactionResult

* Fix CI for CocoaPods

* Fix CI for SPM and style

* Improve readability

* Fix CI for tvOS

* Refactor type checking

* Fix comments

Add unsurfaced parameter names and shorten async lines

* Fix switch conditional evaluates to a constant

* Fix type checking

* Shorten switch statement

* Add to SPM tests
2021-07-22 16:50:30 -05:00
Paul Beusterien fd36167c8c Migrate back to unforked OCMock for SPM (#8042) 2021-05-11 11:39:55 -07:00
47e0a982fb App check and storage, functions and RTDB support (#7928)
* AppAttestation initial public API

* Run ./scripts/style.sh

* Copyright

* Cleanup

* Cleanup

* Get token forcing refresh method

* Formatting

* Forcing refresh samples

* Interop introduced

* Code samples for Interop

* Run  ./scripts/style.sh

* Cleanup

* TODOs and Copirights

* Fix build

* Supported iOS versions

* Remove unnecessary bridging header

* Run  ./scripts/style.sh

* [WIP] DeviceCheckAttestationProvider as a subspec

* cleanup

* Add memory attributes to readonly properties

* Move FIRDeviceCheckAttestationProvider.h to private headers

* TODO for `FirebaseAppAttestation/Core` name

* Remove memory attributes from FIRAppAttestationToken properties

* FIRAppAttestationTests.testSetAttestationProviderFactory introduced

* FIRAppAttestationToken initializer

* Basic FIRLibrary implementation and FIRAppAttestationProviderFactory ingestion.

* Fix

* FIRAppAttestationToken+Interop.h

* TODOs

* Tests: reset FIRApps

* GHA for App Attestation

* Run ./scripts/style.sh

* Style fixes.

* Run ./scripts/style.sh

* TODO

* Nullable initializer and type annpotations

* TODOs

* TODOs

* TODO

* Fix spec and allow warnings

* AppAttestation initial public API

* Run ./scripts/style.sh

* Copyright

* Cleanup

* Cleanup

* Get token forcing refresh method

* Formatting

* Forcing refresh samples

* Interop introduced

* Code samples for Interop

* Run  ./scripts/style.sh

* Cleanup

* TODOs and Copirights

* Fix build

* Supported iOS versions

* Remove unnecessary bridging header

* Run  ./scripts/style.sh

* [WIP] DeviceCheckAttestationProvider as a subspec

* cleanup

* Add memory attributes to readonly properties

* Move FIRDeviceCheckAttestationProvider.h to private headers

* TODO for `FirebaseAppAttestation/Core` name

* Remove memory attributes from FIRAppAttestationToken properties

* FIRAppAttestationTests.testSetAttestationProviderFactory introduced

* FIRAppAttestationToken initializer

* Basic FIRLibrary implementation and FIRAppAttestationProviderFactory ingestion.

* Fix

* FIRAppAttestationToken+Interop.h

* TODOs

* Tests: reset FIRApps

* Run ./scripts/style.sh

* Style fixes.

* Run ./scripts/style.sh

* TODO

* Nullable initializer and type annpotations

* TODOs

* TODOs

* TODO

* Revert FirestoreDecoder.swift formatting.

* Basic implementation of FIRDeviceCheckAttestationProvider and tests (#626)

* DeviceCheck attestation provider sceleton

* DeviceCheck attestation provider sceleton

* Basic FIRDeviceCheckAttestationProviderTests

* Run ./scripts/style.sh

* FIRAppAttestStorage implementation and tests (#627)

* FIRDeviceCheckAttestationProvider designated init

* FIRAppAttestStorage API and basic tests.

* FIRAppAttestStoredToken: NSSecureCoding implementation

* WIP Storage

* Add `accessGroup` param to `FIRAppAttestStorage`

* FIRAppAttestStorage implementation

* Use constants

* FIRAppAttestStorage API doc

* Coding style and typos.

* Code formatting

* Attestation Token caching (#630)

* Storage instance and looging

* AppAttestation caching

* Tests and cleanup

* Cleanup

* Rename App Attestation -> App Check (#631)

* Rename App Attestation -> App Check

* Run ./scripts/style.sh

* Update GHA

* Default Custom Provider (#633)

* AppCheck: remove not unnecessary public API (#634)

* AppCheck: remove not unnecessary public API

* Run ./scripts/style.sh

* AppCheck: DeviceCheck token server API (#635)

* Generic HTTP request handling

* [draft] AppCheck: device check HTTP API and simple tests

* Parse response

* Cleanup

* AppCheck: API errors and tests (#636)

* AppCheck errors

* API service tests and fixes

* Cleanup

* Run ./scripts/style.sh

* Naming

* AppCheck: Register device check provider factory as a default (#637)

* AppCheck errors

* API service tests and fixes

* Cleanup

* Run ./scripts/style.sh

* AppCheck: register FIRDeviceCheckProvider as a component

* Naming

* Registre device check provider factory as a default

* FIRDeviceCheckProvider tests

* AppCheck: API communication common for all providers moved to FIRAppCheckAPIService (#640)

* FIRAppCheckAPIService introduced

* Move URL seession stub to FIRURLSessionOCMockStub

* Run ./scripts/style.sh

* Move approximate date comparing to FIRDateTestUtils

* compose request in FIRAppCheckAPIService

* FIRAppCheckAPIServiceTests

* Use FIRAppCheckAPIService in FIRDeviceCheckProvider

* Cleanup

* DeviceCheck mock server integration and tests (#686)

* DeviceCheck mock server integration and tests

* TODO

* Update FIROptions.h import

* Temporary add FirebaseAppCheck to skip import validation

* TestUtilities moved to SharedTestUtilities

* FirebaseAppCheck.podspec:  TestUtilities->SharedTestUtilities

* SwiftPM: add OCMock dependency to SharedTestUtilities

* FIRURLSessionOCMockStub: #import "OCMock.h"

* App Check: Firebase 7 fixes (#715)

* AppCheck Firebase 7

* FirebaseCore repo-relative imports

* Fix FIRAppCheckStorage.m compilation

* Repo relative imports

* linebreak

* AppCheck: debug FAC token provider (#716)

* AppCheck Firebase 7

* FirebaseCore repo-relative imports

* Fix FIRAppCheckStorage.m compilation

* Repo relative imports

* linebreak

* Remove FIRAppCheckDefaultCustomProvider

* FIRAppCheckDebugProvider introduced

* FIRAppCheckDebugProviderTests

* style

* Print locally generated debug token to console

* Fix imports

* mullability and line breaks

* typo

* Comments

* TODO

* AppCheck: merge into single spec (package) (#717)

* Standard package folder structure

* Move interop header into AppCheck sources folder

* Combine public headers in the standard dir

* Private headers to internal

* Podspec

* Headers import udpdate

* style

* Fix header imports

* Enable check_imports.swift and fix imports

* AppCheck: server request adjustments (#718)

* Wrap DeviceCheck token into JSON

* AppChek - remove static_framework requirement

* WIP

* Update default base URL

* Set content-type header

* Check for empty response data

* Fix tests

* Style and formatting

* Podspec - revert wrong change and remove static_framework

* Assign error to error pointer safely.

* AppCheck: primitive test app (#719)

* Remove static_framework requirement

* WIP: FIRAppCheckTestApp introduced

* Delete .plist

* Copyright

* Remove empty test targets

* pod deintegrate

* Remove test targets from Podfile

* formatting

* Storage: integration with AppCheck (#720)

* Storage: add AppCheck interop dependency

* Inject AppCheck into FIRStorageTokenAuthorizer

* initial AppCheck integration

* Introduce AppCheck fake

* AppCheck fake implementation

* FIRStorageTokenAuthorizer tests and fixes

* @"Authorization" header constant

* Log AppCheck error.

* Cleanup

* FIRStorageTokenAuthorizerTests: helpers

* TODO

* Cleanup

* AppCheck: separate 2P and 3P API (#724)

* FIRAppCheckInterop: remove a convenience method.

* Rename: FIRAppCheckTokenInterop->FIRAppCheckTokenResultInterop

* FIRAppCheckTokenResult introduced

* Update FIRAppCheckTokenHandlerInterop,  FIRAppCheckTokenResultInterop and tests

* style

* Update token result

* Update storage integration

* Adjust check_imports.swift for test files

* Don't use internal AppCheck classes in Storage tests

* style

* Rename token to tokenResult in 2P API

* Add private Core headers to app check sources

* Fix storage log message code format

* token clarification comments in API docs

* Rename token->tokenResult

* AppCheck cleanup (#737)

* Fix public headers import

* Cleanup imported test utils

* FirebaseAppCheck podspec: revert git URL

* AppCheck: Debug token to AppCheck token exchange API (#739)

* GUL: make NSURLSession promise extension public

* Use NSURLSession+GULPromises to send requests

* style

* Move FIRAppCheckToken+APIResponse to Core dir

* rename

* FIRAppCheckDebugProviderAPIService introduced

* Move async token parsing API to FIRAppCheckToken extension

* Move token exchange response handling to FIRAppCheckAPIService. Tests WIP.

* Move API response parsing tests to FIRAppCheckAPIServiceTests

* FIRAppCheckDebugProviderAPIServiceTests

* Cleanup

* style

* App Check debug provider: integrate with exchange API (#743)

* Move FIROption validation to FIRAppCheckValidator

* FIRAppCheckDebugProvider token exchange and tests

* Fix FIRAppCheckDebugProviderFactoryTests

* style

* App Check test app debug provider fix (#747)

* App Check: minor touchups (#750)

* Update dummy token value

* Print local debug token to logs

* Require GoogleUtilities v7.2 and above

* Print debug token on init

* Don't print debug token again

* App Check: use prod environment (#751)

* App Check: use prod backend by default.

* Update token expiration threshold

* App Check SwiftPM support (#753)

* AppCheck SwiftPM package definition

* Promise header import fix

* OCMock header fix

* Fix fixture dependent tests

* Exclude Keychain dependent tests

* License

* ./scripts/style.sh

* Cleanup

* Format with proper SwiftFormat version

* `.process` resources.

* Swift tests target

* Cleanup and code formatting

* App Check: token auto-refresh (#754)

* FIRAppCheckTokenRefresher API defined

* FIRAppCheckTokenRefresher implementation draft

* [WIP] Token refresher integration

* Token refresher integration

* FIRAppCheckTests: token refresher tests

* FIRAppCheckTests: additional tests cases

* FIRAppCheckTimer introduced

* FIRAppCheckTokenRefresher: use FIRAppCheckTimer instead of the dispatch timer.

* FIRFakeTimer

* FIRAppCheckTokenRefresherTests testInitialRefresh

* FIRAppCheckTokenRefresherTests: testNextRefreshOnRefreshSuccess

* ./scripts/style.sh

* Exponential backoff

* Style and comments

* Move token refresh files to a separate folder

* FIRAppCheckTimerTests

* FIRAppCheck: use expicit class in init

* FIRAppCheckDebugProviderFactory Swift name

* FIRAppCheckTokenRefresher: Increment/decrement directly

* App Check fixes (#755)

* Fix backoff: no backoff for the initial request

* Use eager initialization

* FIRAppCheckTokenRefresher: don't refresh until handler set

* FIRAppCheckIntegrationTests: disable token refresher

* Fix testInitialRefresh test

* style

* FIRAppCheckIntegrationTests fix

* Temporary exclude App Check from platfrom logging (#756)

* App Check: send app check SDK version only in the header (#757)

* App Check: store FAC token per app ID (#758)

* App Check: store FAC token per app ID

* update podspec

* API docs

* FIRAppCheck initWithApp tests

* AppCheckCustomProvideApp (#760)

* Functions: App Check integration (#762)

* Functions: app check API added to FUNContextProvider

* FUNContextProviderTests

* FUNContextProvider app check support

* ./scripts/style.sh

* FIRFunctions: pass FAC token as HTTP header

* Fix SPM

* Fix Firebase-Package scheme bad merge

* Cleanup

* RTDB: pass FAC token to web socket (#763)

* RTDB: pass FAC token to web socket

* FIRAppCheckFake default init

* Rename FAuthTokenProvider to FIRDatabaseConnectionContext; integrate with App Check

* Pass App Check token in the HTTP header

* Rename

* Fix existing tests

* TODO

* ./scripts/style.sh

* Context provider: assume separate FAC token change listener

* FIRDatabaseConnectionContextProviderTests

* Remove unused files

* Copy NSMutableURLRequest

* Cleanup

* ./scripts/style.sh

* FIRDatabaseConnectionContextProvider: sync callback when no auth or app check

* Cleanup

* Rename "authToken" leftovers to "context"

* Fix renaming

* Pass missing headers to NSURLSessionWebSocketTask

* Cleanup

* add a name to TODO

* App Check: token update notifications (#764)

* AppCheck: token did change API and tests

* notification implementation and fixes

* Run ./scripts/style.sh

* Update comments

* RTDB: send app check token updates to keep connection open (#765)

* Pass AppCheck instance as an object into the the FAC token update notification

* FIRDatabaseConnectionContext: add FAC token change listener API

* formatting

* Send FAC token updates to open connection

* More informative empty response message

* refreshAppCheckToken fixes

* Remove assertion

* Don't modify state

* forceTokensRefresh -> forceTokenRefreshes

* Call listeners on [FIRDatabaseQuery sharedQueue]

* App Check API cleanup and docs (#766)

* AppCheck public API and docs cleanup

* More API docs

* Fix compilation errors

* typos and wording

* Make summary different from description (pod lib lint warning)

* port app check workflow changes from another branch

* pod lib lint: remove --allow-warnings

* App Check cleanup (#767)

* Cleanup debug code and outdated TODOs

* Fix FIRDeviceCheckProvider availablility for SPM

* Fix availability in tests

* Fix availability in tests

* Make sure os requirements are consistent for tests specs

* Migrate v1alpha URLs to v1beta

* Migrate v1alpha URLs to v1beta

* Run ./scripts/style.sh

* Functions tests: fix Xcode 11 warnings (#7931)

* Functions tests: fix Xcode 11 warnings

* style

* App Check: token auto-refresh opt-out API (#769)

* FIRAppCheckSettings introduced (WIP)

* FIRAppCheckSettingsTests

* Style

* Make FIRAppCheckSettings instance per-app.

* FIRAppCheckTokenRefresher: use FIRAppCheckSettings.isTokenAutoRefreshEnabled (WIP)

* Tests

* Add public instance getters

* Fix analyzer warnings

* Fix testspec OS versions

* FIRAppCheckTokenRefresher expiration date update; tests

* FIRAppCheck.isTokenAutoRefreshEnabled implementation and tests

* style

* FIRAppCheck: Use specific types for variables in the default init

* More precise comments

* missing symbol

* FIRAppCheckSettings: remove defensive conditions from init.

Co-authored-by: Nick Cooke <nickcooke@google.com>
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2021-04-21 21:01:11 -04:00
Ryan Wilson f60577f781 watchOS support for RTDB (#7656)
* Initial attempt for watchOS Database support

* watchOS Package manifest changes for SwiftPM testing.

* Fix iOS compilation

* Further iOS changes

* Further watchOS changes

* Reverted !WATCHOS && 0 change, fixed SharedTestUtils

* Proper logging, using positive if statements

* Properly handle lifecycle changes on watchOS sockets.

Also only log errors if we haven't closed things intentionally.

* Cleanup:

- Removal from outdated sample
- Fixed podspec
- Fixed Swift Package

* Actually restore SwiftPM XCScheme

* Restore ExtensionDelegate.swift

* Revert all changes to ExtensionDelegate.swift

* Cleanup from code review.

* Style

* Added CHANGELOG entry.

* Review comments.

* Style.sh

* Remove unnecessary wrappers for SwiftPM

* Review feedback

* Formatting
2021-03-12 14:19:16 -05:00
Jan Wyszynski b1766c2fd6 Implement startAfter and endBefore for RTDB queries (#7209) 2021-01-13 18:34:05 -08:00
Paul Beusterien a995dc4f59 RTDB - new public header structure (#6171) 2020-07-31 07:22:02 -07:00
Paul Beusterien d7ddd5bfba SPM: Build and unit test RTDB (#6022) 2020-07-13 11:16:24 -07:00
Paul Beusterien 7cb6f96cfd Repo-relative imports for Database (#5861) 2020-06-22 07:58:52 -07:00
Paul Beusterien fa72963bfd Update FirebaseDatabase to canonical directory structure (#5860) 2020-06-22 07:26:07 -07:00