Andrew Heard
760d449145
[visionOS] Fix FirebaseDatabase build on Xcode 15.1 beta 1 ( #11937 )
2023-10-13 16:33:34 -04:00
Jan Wyszynski and Ryan 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
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
Maksym Malyhin
4d518509ed
Database: fix App Check token refresh ( #8549 )
...
* Database: fix App Check token refresh
* Changelog
2021-08-24 11:52:51 -04:00
Marina
97197178bd
Fix getData crashing in offline ( #8484 )
...
Fixes #8357
The issue was that `node` property of `FCacheNode` pokes one level deeper: (FCacheNode.m:66)
```
- (id<FNode>)node {
return self.indexedNode.node;
}
```
2021-08-09 20:53:09 -07:00
Jan Wyszynski
41b0073999
Dispatch getData callbacks on FRepo callback queue ( #8247 )
2021-07-16 05:48:57 -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
Paul Beusterien
c4e994c7c4
Update to clang-format 12 ( #7909 )
2021-04-16 09:17:41 -07: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
6db2e0d856
Fix startAfter/endBefore for orderByKeys queries ( #7403 )
2021-02-10 09:42:36 -08:00
Jan Wyszynski
ed003f7610
RTDB query gets should not send server requests for listened-to data ( #7312 )
2021-01-22 10:46:14 -08:00
Jan Wyszynski and Sebastian Schmidt
95aac941d9
Implement get for RTDB queries ( #7264 )
...
* Implement RTDB Query get
* changelog
* Mark query inactive after callback
* Add tests, fix some issues
* some small fixes
* Fix tests
* Review feedback
* Address review feedback + fixup tests
* Remove extra logs
* Update FirebaseDatabase/Sources/Core/FPersistentConnection.m
Co-authored-by: Sebastian Schmidt <mrschmidt@google.com >
* Review feedback
* Write to unique paths
* Removed FIR prefix
* Add _Nullable specifiers in FRepo.h
* format nullability stuff
* fix get cache test
* goOnline in when get tests finish to avoid interference
* Address review feedback
Co-authored-by: Sebastian Schmidt <mrschmidt@google.com >
2021-01-07 17:41:32 -08:00
Paul Beusterien
f8c6459b56
Revert "Implement RTDB Query get ( #7110 )" ( #7262 )
...
This reverts commit 55f27b5482 .
2021-01-07 07:36:02 -08:00
Jan Wyszynski and Sebastian Schmidt
55f27b5482
Implement RTDB Query get ( #7110 )
...
* Implement RTDB Query get
* changelog
* Mark query inactive after callback
* Add tests, fix some issues
* some small fixes
* Fix tests
* Review feedback
* Address review feedback + fixup tests
* Remove extra logs
* Update FirebaseDatabase/Sources/Core/FPersistentConnection.m
Co-authored-by: Sebastian Schmidt <mrschmidt@google.com >
* Review feedback
* Write to unique paths
* Removed FIR prefix
* Add _Nullable specifiers in FRepo.h
* format nullability stuff
* fix get cache test
Co-authored-by: Sebastian Schmidt <mrschmidt@google.com >
2021-01-05 17:07:05 -08:00
Morgan Chen and Paul Beusterien
90d3600c56
Implement unified emulator settings API proposal ( #5916 )
...
* Add header for API proposal
* Fix some bugs and add implmentation
* Fix header import
* Fix umbrella header
* Add ways to modify settings object
* Remove unnecessary nodoc
* Update with new API
* Add implementations for Firestore and RTDB
* Revert emulator settings class
* fix style
* Remove bad import and assertion on override
* Prevent database emu from being set after repo init
* Add unified emu to functions
* Add tests
* update header comment
* fix test failures
* remove unused variable
* fix database test
* cast NSInteger to long
* fix style
* Fix functions test in travis
* Remove valueForKeyPath in tests
* fix style
* update comments and remove explicit scheme
* save progress
* Implement reference validation for RTDB
* Add tests
* Add changelog entries
* Remove test logs
* Fix line lengths
* remove underlyingHost
* fix functions tests
* fix integration warnings in functions test
* fix functions test
* Fix infinite loop exposed in integration tests (#6912 )
Co-authored-by: Paul Beusterien <paulbeusterien@google.com >
2020-11-06 10:37:06 -08:00
Paul Beusterien
a995dc4f59
RTDB - new public header structure ( #6171 )
2020-07-31 07:22:02 -07:00
Paul Beusterien
01bf549253
Update formatters ( #5933 )
2020-06-26 14:34:27 -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