Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for other Firebase products to integrate with Remote Config. #6692

Merged
merged 11 commits into from
Oct 23, 2020

Conversation

vic-flair
Copy link
Contributor

Stores Personalization metadata in database along with Remote Config parameters. Adds a RCNPersonalization class that logs Personalization events, and listeners that call that when get*() is called.


/// Adds a listener that will be called whenever one of the get methods is called.
/// @param listener Function that takes in the parameter key and the config.
- (void)addListener:(void (^_Nonnull)(NSString *_Nonnull, NSDictionary *_Nonnull))listener;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should remove this from the header file since we're just calling it internally within the RC SDK and not changing the public API

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -284,6 +306,14 @@ - (void)loadConfigFromMainTable {
self->_defaultConfig = [defaultConfig mutableCopy];
dispatch_semaphore_signal(self->_configLoadFromDBSemaphore);
}];

[_DBManager loadPersonalizationWithCompletionHandler:^(BOOL success, NSDictionary *fetchedConfig,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rename to fetchedPersonalization and activePersonalization?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


if (handler) {
dispatch_async(dispatch_get_main_queue(), ^{
handler(YES, activePersonalization, fetchedPersonalization, nil);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the handler definition expects fetched and then active

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LOL, too much copying and pasting.

@@ -331,6 +358,10 @@ - (FIRRemoteConfigValue *)configValueForKey:(NSString *)key {
@"Key %@ should come from source:%zd instead coming from source: %zd.", key,
(long)FIRRemoteConfigSourceRemote, (long)value.source);
}
if ([self->_configContent.activePersonalization count] > 0) {
[self callListeners:value.stringValue
metadata:self->_configContent.activePersonalization[key]];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thinking: we mentioned that the listener approach would allow us to add other side-effects in the future, but given the current implementation all the listeners would be called specifically with personalization metadata, which limits the functionality we can add

@vic-flair vic-flair changed the title Initial commit for Firebase Personalization. Oct 12, 2020
@vic-flair vic-flair requested a review from paulb777 October 12, 2020 21:01
@vic-flair vic-flair self-assigned this Oct 12, 2020
@@ -41,6 +42,10 @@
/// Timeout value for waiting on a fetch response.
static NSString *const kRemoteConfigFetchTimeoutKey = @"_rcn_fetch_timeout";

/// Listener for the get methods.
typedef void (^FIRRemoteConfigListener)(NSString *_Nonnull, NSDictionary *_Nonnull)
NS_SWIFT_NAME(FIRRemoteConfigListener);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove NS_SWIFT_NAME. APIs exposed to Swift should not use typedefs and this looks like its only for internal APIs anyway

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -100,6 +103,10 @@ typedef void (^RCNDBLoadCompletion)(BOOL success,
- (void)updateMetadataWithOption:(RCNUpdateOption)option
values:(NSArray *)values
completionHandler:(RCNDBCompletion)handler;

/// Insert or update the data in Personalizatoin config.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: typo Personalization

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -7,6 +7,7 @@
- [fixed] Fixed database creation on tvOS. (#6612)
- [changed] Updated public API documentation to no longer reference removed APIs. (#6641)
- [fixed] Updated `activateWithCompletion:` to use completion handler for experiment updates. (#3687)
- [changed] Log metadata for Remote Config parameter get calls. (#6692)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make this more descriptive? As written this might raise concerns for developers. What exactly is the impact of the change for users of the RemoteConfig libraries?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the RC team wants to keep this intentionally vague, since most developers won't be able to use this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, something like "Added preliminary infrastructure to support future features" or nothing at all might be better. If I read the code right, additional logging is only happening when Personalization is being used. Saying unspecified logging is happening can be concerning to developers.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to your suggestion.

Copy link
Member

@paulb777 paulb777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Thanks for working through the comments.

I'd like @maksymmalyhin to take a look too, especially at the threading logic, but if he doesn't get a chance, I'm fine to merge tomorrow afternoon.

Copy link
Contributor

@maksymmalyhin maksymmalyhin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly LGTM, but a couple questions.


if (analytics) {
_listeners = [[NSMutableArray alloc] init];
[RCNPersonalization setAnalytics:analytics];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add tests for FIRRemoteConfig integration with personalization.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

return sharedInstance;
}

+ (void)setAnalytics:(id<FIRAnalyticsInterop> _Nullable)analytics {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I curious if RCNPersonalization supports multiple FIRApp instances? There may be multiple instances of Remote Config possibly initialized with different and completely unrelated Firebase applications. Is RCNPersonalization ready to handle such cases?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, it'll only support the default instance, because that's the only one with analytics.

@property(nonatomic, strong) id<FIRAnalyticsInterop> _Nullable analytics;

/// Returns the RCNPersonalization singleton.
+ (instancetype)sharedInstance;
Copy link
Contributor

@maksymmalyhin maksymmalyhin Oct 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excuse me in advance for the questions, I may not know all the design details, but I would like to clarify a couple things:

  1. Why RCNPersonalization singleton is needed? Is it possible to use just an instance or static methods accepting FIRAnalyticsInterop?
  2. The singleton doesn't seem to respect FIRApp lifecycle. If a shared instance is actually required, then it is better to be implemented via components system - implement FIRLibrary protocol (see Remote Config or simpler FIS examples, etc.)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't really need to be singleton, so just made it an instance.

@@ -328,6 +360,7 @@ - (FIRRemoteConfigValue *)configValueForKey:(NSString *)key {
@"Key %@ should come from source:%zd instead coming from source: %zd.", key,
(long)FIRRemoteConfigSourceRemote, (long)value.source);
}
[self callListeners:key config:[self->_configContent getMetadataForNamespace:FQNamespace]];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: getConfigAndMetadataForNamespace?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Copy link
Contributor

@maksymmalyhin maksymmalyhin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the updates! Mostly LGTM, a couple requests for comments.

_bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
if (!_bundleIdentifier) {
FIRLogNotice(kFIRLoggerRemoteConfig, @"I-RCN000038",
@"Main bundle identifier is missing. Remote Config might not work properly.");
_bundleIdentifier = @"";
}
_DBManager = DBManager;
_configLoadFromDBSemaphore = dispatch_semaphore_create(0);
_configLoadFromDBSemaphore = dispatch_semaphore_create(1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add a comment why the particular semaphore value is set. Also, maybe it will be a bit more readable if we call dispatch_semaphore_signal closer to the operation that requires it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the database methods closer.

@@ -60,7 +76,51 @@ - (void)setUp {
[self->_fakeLogs addObject:bundle];
});

[RCNPersonalization setAnalytics:_analyticsMock];
_personalization = [[RCNPersonalization alloc] initWithAnalytics:_analyticsMock];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add brief comments on what's going on here? Breaking it down to methods with self-documenting names also looks good to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Copy link
Contributor

@karenyz karenyz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should rename the PR title to match the changelog, otherwise LGTM

@vic-flair vic-flair changed the title Log metadata for Remote Config parameter get calls. Oct 20, 2020
Copy link
Contributor

@maksymmalyhin maksymmalyhin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@paulb777 paulb777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One nit and then LGTM

@@ -7,6 +7,7 @@
- [fixed] Fixed database creation on tvOS. (#6612)
- [changed] Updated public API documentation to no longer reference removed APIs. (#6641)
- [fixed] Updated `activateWithCompletion:` to use completion handler for experiment updates. (#3687)
- [changed] Add support for other Firebase products to integrate with Remote Config. (#6692)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should move to a 7.1.0 section. 7.0.0 is past code freeze.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@vic-flair vic-flair merged commit 95cf1d3 into master Oct 23, 2020
manjanac added a commit that referenced this pull request Nov 4, 2020
* Restores ML Pods after M77.

* Remove deprecated sendLogsWithServiceName (#6437)

* Remove deprecated pods from Firebase.h and Firebase.podspec (#6438)

* Remove the FCM Direct Channel API from Messaging (#6430)

* Remove unnecessary Core private headers (#6439)

* Update SPM docs to current version (#6524)

* Update podspecs to min iOS 10 (#6517)

* Merging the 6.33.0 release into master (#6523)

* Update versions for Release 6.33.0

* SPM M80(6.33.0) Analytics update (#6490)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>

* Merge 6.33 SPM fixes back to master (#6530)

* SPM M80(6.33.0) Analytics update (#6490)
* Remove unnecessary analytics public header copy (#6498)
* Fix SPM analytics warning introduced yesterday (#6504)
* Fix SPM version (#6527)

* Import Spec tests (#6525)

* Import Spec tests

* Init

* Add recovery specs

* Update FSTSyncEngineTestDriver.mm

* Add release candidate prerelease workflow. (#6487)

This also update cocoapods source to cocoapods repo since cdn is failed to connect.

* Move internal Crashlytics changes to Github (#6535)

Move *most* internal Crashlytics changes to Github

* GDTCORFlatFileStorageTest size limit tests: use timeout proportional to the number of events (#6537)

* IID: repo-relative headers (#6539)

* Use Xcode 12 in CI instead of the beta (#6542)

* SwiftPM for FCM (#6541)

* Fix a rare RC crash (#6556)

* Refactoring archive testing to a single yml file. (#6510)

* Refactoring archive testing to a single yml file.

This reduces the duplication in each of the workflow files. This also
will make archive testing with SwiftPM more straightforward.

* Prefixed with 'pod' name

* Commenting out to run archive testing on PR for now.

* Put array on single line

The yml won't be parsed unless the `pod` array is on a single line.

* Fix to run on PRs to the yml itself.

* Fix naming of AppDistro

* Remove schemes.

* Update versions automation (#6550)

* Remove iOS 10.0 check since minimum support in Messaging is already 10.0 (#6559)

* Add Performance podspec (#6526)

* Integrate Firestore with Firebase platform logging (#6507)

The sample user agent string I'm getting in XCode is `apple-platform/ios apple-sdk/17E8258 fire-fst/1.17.1 fire-ios/6.10.2 swift/true xcode/11E503a`.

* Change lastFetchTime to be readonly (#6567)

* Change lastFetchTime to be readonly

* Add changelog

* GDTCORDirectorySizeTracker: fix NSURL constructor (#6580)

* GDTCORDirectorySizeTracker: replace optional NSURL constructor with non-optional.

* GDTCORDirectorySizeTracker tests for the issue

* ./scripts/style.sh

* changelog

* Upload Symbols 3.4 with performance improvements (#6583)

* Stop requiring pods to be static frameworks (#6557)

* Always send the user agent regardless of the heartbeat value (#6592)

Any non-zero heartbeat value is immediately reset to zero upon retrieval. Thus, should the network request containing the heartbeat value and the user agent string fail, the previous logic would prevent us from sending the user agent string until the next day (when the heartbeat once again returns a non-zero value). Until this is resolved, always send the user agent string, regardless of the heartbeat value. The associated increase in bandwidth usage is minor (~1.2% in _total_ traffic from running the full suite of Firestore integration tests, which represent the worst-case scenario because they recreate the streams much more often than a typical application).

* Make all GoogleUtilities APIs public (#6588)

* Make FirestoreException a type defined by Firestore/core (#6589)

Move FirestoreInternalError to firebase::firestore to match
FirestoreException in Android.

When importing this into google3, we'll have to delete the
Android-specific version of this type.

* Update CHANGELOG for Firestore v1.19.0 (#6601)

* Remove deprecated method in ABT public header (#6602)

* Remove deprecated method, implementation

* Replace call to deprecated method in RC, fix tests

* Update changelogs

* Add InstanceID deprecation warning (#6585)

* Firebase 7 Firebase.podspec versions (#6604)

* Add a changelog entry for Firestore platform logging (#6603)

* 6.34.0 CHANGELOG update (#6611)

* Migrate FIRLoggerServices strings from Core to clients (#6608)

* Add static-framework testing to CI (#6599)

* 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

* Update versions for Release 6.34.0

* 6.34.0 updates for SwiftPM (#6614)

* M81 FIS cherry pick of #6570 (#6616)

* 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

* Update versions

* patch version

* release manifest

* Add link to App Distribution docs page (#6620)

* Add link to App Distribution docs page

* Remove trailing whitespaace

* FIS IID tests shouldn't use repo-relative imports

* Clean up usage of deprecated methods in unit tests (#6618)

* Clean up usage of deprecated methods in unit tests

* Add back second namespace tests

* Remove test for setDefaults:namespace:

* Remove deprecated auth APIs (#6607)

* Remove deprecated APIs from public header.

* Remove deprecated API implementations.

* Also remove deprecated APIs from FIRUser.

* Update unit tests.

* Update sample app.

* Update changelog.

* Use MIMEType for image download extension if not present in resource URL (#6591)

* ZipBuilder Firebase 7 updates (#6629)

* Change numberValue to be nonnull (#6623)

* Change numberValue to be nonnull

* Add changelog

* Add auth emulator support to public API. (#6624)

* Add auth emulator support to public API.

* Update changelog.

* FIS: don't log anything on success validation (#6635) (#6636)

* Remove the `FirebaseOptions()` bare initializer. (#6633)

* Remove the `FirebaseOptions()` bare initializer.

This was unintentionally surfaced from the ObjC header and should be
removed.

Note: although the existing initializer doesn't work, this is still a
breaking change.

* Style

* Changelog update.

* Remove deprecated elements of FIAM API (#6617)

* Remove deprecated FIAM API

* Remove call to deprecated method

* Fix imports

* Modify view controllers to use dummy test subclasses for message objects

* Add bridging header, include it in test app

* Add CHANGELOG entry

* Revert "Add CHANGELOG entry"

This reverts commit 55c0bbc.

* Add CHANGELOG entry

* Swift formatting

* Add LLC to copyright notice

* Revert "Fix imports"

This reverts commit 55fdbbd.

* FIS: disable IID migration tests by default (#6619)

* FIS: disable IID migration tests by default

* remove redundant env variable

* Fix merge errors

* Merge FLoC SDK into master branch. (#6466)

* Create Segmentation SDK structure for source and unit tests. (#3214)

* Create Segmentation SDK structure for source and unit tests.

* Review changes: Remove unnecessary files in test folder. Add md-floc-master to CI

* Rename Segmentation directory to FirebaseSegmentation directory. Update podspec to include search header path.

* Add core support with interop for Segmentation SDK.  (#3430)

* Add core support with interop for Segmentation SDK. Also update headers to be under sources folder.

* Review fixes.

* Minor changes.

* Fix style.

* Fix style.

* Style changes.

* Fix whitespace in travis.yml

* Fix style.

* Travis CI is stuck..try updating the travis.yml

* Undo travis.yml change.

* Working drop of Segmentation SDK along with test app and unit tests. (#4574)

* Working drop of Segmentation SDK along with sample app and unit tests.

* Update if_changed.sh to include FirebaseSegmentation.

* Complete NS_ASSUME_NON_NULL_START with NS_ASSUME_NON_NULL_END in header file.

* Fix unit tests.

* Fix style.

* Fixes after running XCode's static analyzer.

* Fix style.

* fix style.

* 'pod lib lint' fixes.

* Fix analyzer errors.

* Address review comments.

* Minor changes for review comments.

* Address review comments.

* Address review comments.

* stop mocking in tear down method for tests.

* Minor update to sample app project.

* Fix trailing whitespace in Podfile.

* Add set -x to check.sh

* update segmetation dependency version

* migrate FloC SDK to depend on FIS SDK directly

* format floc

* format

* using customized FIRapp

* remove test plist file

* refactor to capture weakself

* format

* replace partial mock with class mock

* minor refactoring

* use subscript to manipulate dictionary instance

* fix import error

* minor refoctoring, addressing comments

* address comments

* fix configurations

* format

Co-authored-by: dmandar <dmandar@users.noreply.github.com>
Co-authored-by: ChaoqunCHEN <cqchen93@gmail.com>

* Remove deprecated RC APIs (#6637)

* Remove deprecated method declarations and implementations

* Fix broken dangerfile (#6642)

* GDT: Move GDTCORAssert.h to internal headers (#6638)

* Move GDTCORAssert.h to internal headers

* Fix import

* Update check_imports check (#6640)

* Stop using CocoaPods private headers (#6572)

* Add check for unauthenticated error and sign out in fetchNewLatestRelease (#6648)

* Add check for unauthenticated error and sign out in fetchNewRelase method

* Update CHANGELOG

* Add check for Tester sign in before calling fetch

* One Firebase version (#6634)

* Update Symbol Collision Test for Firebase 7 (#6656)

* Fix ZipBuilder crash and warning (#6653)

* Public Version API (#6651)

* Bump nanopb to fix Xcode 12 warning (#6659)

* Fix breakage from #6651 (#6660)

* GDT: move some headers from public to internal (#6643)

* Move extra public headers to Internal and fix imports

* Cleanup

* Use relative paths in internal headers

* Fix imports in internal headers

* ./scripts/style.sh

* Fix GDTTestApp

* Fix test app

* Use real uploader for watchOS test app

* comma

* Update the sample project link. (#6661)

* Simplify FirebaseCore imports (#6664)

* Call fetchAndActivate completion handler on main thread (#6665)

* Call fetchAndActivate completion handler on main thread

* Add changelog

* Update changelog to use issue number

* Missing Foundation import (#6670)

* Remove duplicate section for instructions. (#6668)

* FirebaseInstallations import added to Firebase.h (#4908)

* FirebaseInstallations import added to Firebase.h

* Add Installations to Firebase.podspec

* UI_USER_INTERFACE_IDIOM() was deprecated in iOS 14 (#6576)

* Update FirebaseAnalytics to the latest version from the release branch. (#6675)

* Remove deprecated -[FIRInstanceID appInstanceID:] (#6677)

* Remove deprecated -[FIRInstanceID appInstanceID:]

* changelog

* typo fix

* Messaging token refresh delegate should be able to return null token (#6647)

* Cherry-pick two 6.34.0 commits to master (#6688)

* Update changelogs (#6649)
* Speedup SwiftPM (#6687)

Co-authored-by: Morgan Chen <morganchen12@gmail.com>

* Fix a google3 build error (#6689)

* Fix an issue notification is not received during app first install (#6669)

* 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 69739dd.

* Revert "fix debug"

This reverts commit 84fcbc7.

* Revert "debug test quickstart with no xcpretty"

This reverts commit 1fa21ed.

* C API for Firebase Version (#6690)

* Fix retain cycle build issue (#6693)

* Provide version for FDL 1P builds (#6679)

* Fix tvOS storage issues. (#6658)

* Fix tvOS storage issues.

On tvOS devices, the ApplicationSupport directory cannot be used.
Unfortunately this doesn't come up in simulator testing, only on device.
This hasn't been fully tested on device but given that any writes to the
ApplicationSupport directory fail on tvOS, this change can't break much.

Fixes #6612

@defagos can you please give this a test?

* Fixed changed dir name for RC

* Fixed test naming, too.

* Fix the documentation comment for GoogleUtilities.

* Updated changelog.

* Review feedback

* Fixed CHANGELOG location. (#6698)

* Fix CI/regression - update for change FCM API (#6699)

* Support paths with + in List API (#6700)

* Update API documentation referencing removed methods (#6667)

* Update API documentation to remove references to removed methods

* Add changelog

* Address comments

* Merge release-6.34.0 branch after patch (#6701)

* Update versions for Release 6.34.0

* 6.34.0 updates for SwiftPM (#6614)

* M81 FIS cherry pick of #6570 (#6616)

* 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

* Update versions

* patch version

* release manifest

* FIS: don't log anything on success validation (#6635)

* Update changelogs (#6649)

* GoogleDataTransport: deprecated API conditions (#6697)

* GoogleDataTransport: deprecated API conditions

* Version bump

* use `TARGET_OS_IOS`

* changelog

* changelog

* style

* Fix merge

Co-authored-by: Ryan Wilson <wilsonryan@google.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: Morgan Chen <morganchen12@gmail.com>

* Refactor GULSwizzledObject to ARC to unblock SwiftPM support (#5862)

* Refactor GULSwizzledObject to ARC to unblock SwiftPM transition.

* run ./scripts/style.sh

* Assert a single swizzler per swizzled object.

* testMultiSwizzling: fix iOS 10 tests

* Changelog

* Cleanup

* Address floc review comments (#6691)

* Address floc review comments

* Fix style

* fix bad synthesize

* Remove segmentation constants from core

* fix style

* Allow Generic OAuth for Facebook and Apple when using the auth emulator. (#6702)

* Update NOTICES now that several FirebaseML pods are deleted (#6709)

* Log warning instead of failing SDK when discovering dangling target. (#6685)

* Log warning instead of failing SDK when discovering dangling target.

* Add unit test

* Delete old test.

* Initial SPM building for watchOS (#6705)

* Update testing account since the previous one is disabled for GHA. (#6652)

* Update the version of analytics to the latest released one. (#6562)

* Disable deprecation warning (#6512)

* Remove the `FIR` prefix from notification constants. (#6645)

* Remove the `FIR` prefix from notification constants.

* Enable Firebase 7 path in quickstart test

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>

* Change instances of 'dimiss' to 'dismiss' (#6708)

* Use completion handler when updating experiments after activation (#6711)

* Use completion handler when updating experiments after activation

* Fix Travis

* Add changelog

* Fix whitespace

* Nonnull initializers

* Firebase user agent: additional fields for platform logging (#6429)

* Move firebase user agent logic to a separate class.

* FIRAppTest: prefix some tests with the tested method names

* FIRAppTest: user agent new fields tests

* New user agent field added.

* Headers

* API docs

* ./scripts/style.sh

* nullability fix

* Move environment info methods to GoogleUtilities

* GULAppEnvironmentUtilTest

* GULAppEnvironmentUtil swift tests

* FirebaseApp user agent swift flag test

* ./scripts/style.sh

* Cleanup CoreDiagnostics

* Nullable device model

* FIRCoreDiagnosticsTest fix

* Merge fixes

* Fix import

* rename

* Cleanup GUL imports (since all headers are public now)

* Don't allow logger version deallocation (#6719)

* s/withMaxResults/maxResults (#6714)

* Remove support for setting timestampsInSnapshotsEnabled (#6622)

Snapshots will now always include `FIRTimestamp` values. Use
`[FIRTimestamp dateValue]` to convert to `NSDate` if required.

`timestampsInSnapshotsEnabled` was deprecated in Firebase 5.16.0
(January 22, 2019) and has defaulted to true since then.

Projects that have not enabled `timestampsInSnapshotsEnabled` have
logged a warning since Firebase 4.12.0 (April 10, 2018).

* FIS API docs: use term "installation auth token" consistently. (#6014)

* FIS API docs: use term "Installation auth token" consistently.

* Changelog

* Capitalize

* Use lowercase

* SHA1 usage explanation

* missed upper case

* a -> an

* Minor RC cleanup (#6722)

* Cleanup developer mode variables

* Fix README link

* Use fully qualified namespace in test to avoid errors

* Fix whitespace

* Re-enable quickstart testing for FirebaseUI apps (#6725)

* Update GDT version for M82 (#6729)

* Update versions for Release 7.0.0

* ios version fixes

* Delete Test dependency

* Add manual trigger and update catching branch version. (#6732)

* One version release process (#6724)

* Missing iid handler checking cause crash (#6737)

* Fix spelling in header name (#6738)

* Travis GoogleUtilities :  skip Swift tests when --use-libraries (#6735)

* Travis GoogleUtilities :  skip Swift tests when --use-libraries

* Temporary enable cron tests for PRs to check

* Revert temp change

* Add update-tags release process (#6739)

* Firebase zip contents from FirebaseManifest instead of textproto (#6747)

* Add Carthage JSON manifests to git repo (#6742)

* Address #6747 review comments (#6749)

* CocoaPods CI update (#6751)

* CocoaPods CI update

* CocoaPods CI update

* Restore cron after test success

* FIS docs: whitelist -> allowlist (#6757)

* FIS docs: whitelist -> allowlist

* Changelog

* Changelog fix

* Revert accidently added GUL change

* GoogleUtilities: NSURLSession promise extension (#6753)

* GoogleUtilities: NSURLSession promise extension

* Imports fix

* Changelog

* API and API docs

* style

* Changelog fix

* Finish port of update-versions.py (#6758)

* Finish port of update-versions.py

* comments

* more comment

* Prevent test build errors under Xcode 12.1 (#6760)

Xcode 12 changed the XCTest assertions to be macros that no longer implicitly depended on `self`. It seems as if Xcode 12.1 has made -Wunused-lambda-capture part of our default warnings and this breaks Objective-C++ code that lambda captures `self` only for its implicit use with the XCTest macros.

This isn't common, so just suppress the warning by forcing `self` to appear used regardless of whether XCTest assertions reference `self` or not.

* Exclude FirebaseSegmentation in testing (#6736)

* Some Release tooling cleanup (#6761)

* Only run schedule actions on the main repo (#6770)

* Rename ReleaseTooling (#6772)

* Address two comments from last week's PRs (#6774)

* Source updates for ReleaseTooling rename (#6773)

* Fix a memory leak introduced in #6418 (#6778)

The root of the issue is that when serializing a singular filter, it is being treated as a unary filter before it is definitively established whether it is a unary filter or a field filter. The leak is caused by always serializing the unary filter's field path field for equality and non-equality filters -- if the filter's value turns out not to be NaN or null, the serialization code switches the filter's type to a field filter without clearing the partially-initialized unary filter. `pb_release` would not free the `unary_filter.field.field_path` member variable because it would consider the object not to be a unary filter.

Also a small refactoring to make the function easier to digest.

* Fix typo to fix zip cron (#6784)

* Fix cron logic for forks (#6785)

* Crashlytics update run script to quote all arguments passed (#6789)

* Adjust Storage Timeouts to GTM's retry interval (#6791)

* Add custom domain support to callable functions (#6787)

* Update to CocoaPods 1.10.0 (#6795)

* Restore zip cron test (#6798)

* Fixed broken callback to AppDelegate (#6800)

Fixed broken callback to AppDelegate after retrieving a dynamic link during fresh app start.
The AppDelegate call was broken in PR : #6517

Reverting to the old implementation of dynamic link passing to App delegate with changes to remove iOS 9 checks.
Using new "openURL" method instead of the deprecated one.
Clean up in the sample app pod file.

* Merge release-7.0 branch to master (#6797)

* Update cron tests for new Swift product names (#6804)

* Stop failing on warnings (#6807)

* Merge SPM updates back to master to fix CI (#6809)

* Add support for other Firebase products to integrate with Remote Config. (#6692)

* Update zip builder to handle xcframeworks from binary pods (#6815)

* Readme and Roadmap updates (#6816)

* Fix typo on publish command (#6831)

* Update SPM instructions for 7.0 (#6832)

* Fix publish order - RemoteConfig is a dependency of Performance (#6834)

* Post-release 7.0 merge to master  (#6836)

* Firebase user agent: add iOS on mac platform (#6799)

* Firebase user agent: add iOS on mac platform

* Older Xcode compatibility

* Fix check iOS version

* changelog

* Carthage updates for 7.0.0 (#6833)

* Adding test to make sure pending dynamic link is getting passed to App delegate method. (#6819)

Adding unit test to make sure the pending dynamic link is getting delivered to specific method in App delegate.

* Remove Component version from issue template (#6838)

* Run integration tests against the emulator by default. (#6852)

Remove support for running against Hexa, which we haven't done in years. Integration tests will now assume a local emulator by default.

Once imported into google3, this will make it significantly easier to run integration tests against cls from third-parties because this will be able to use the emulator we're already running rather than requiring us to build hexa again.

* Fix cache for check workflow (#6853)

* clarify error when logging settings failures (#6847)

Added additional logging when settings requests fail with a 404 status to help customers debug onboarding issues.

* Update Firestore macOS build for Xcode 12 (#6859)

* Remove usages of "whitelist" in Firestore. (#6846)

Fixes #6755.

* Allocate global objects so that their destructors don't run. (#6849)

Fixes #6844.

* Fix minor style issues uncovered during auditing (#6851)

* Remove explicit MobileCoreServices from podspecs (#6858)

* Change the Crashlytics version constant to read from FIRCore instead of from a build flag. (#6712)

* Get rid of an additional import of FIRVersion that I missed deleting (#6867)

* Merge #6860 to master (#6868)

* Fix warning introduced with Xcode 12 (#6865)

* GDTCCTUploader: lazy initialize url session, use ephemeral session (#6870)

* GDTCCTUploader: lazy initialize url session, use ephemeral session

* Changelog

* typo

* Update to Firebase 7.0 and add Installations dependency

* Fix lint errors

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: Chen Liang <chliang@google.com>
Co-authored-by: Maksym Malyhin <mmaksym@google.com>
Co-authored-by: Sebastian Schmidt <mrschmidt@google.com>
Co-authored-by: Gran <ollkorrect999@gmail.com>
Co-authored-by: Tejas Deshpande <tdeshpande@google.com>
Co-authored-by: Ryan Wilson <wilsonryan@google.com>
Co-authored-by: Konstantin Varlamov <var-const@users.noreply.github.com>
Co-authored-by: karenyz <58443706+karenyz@users.noreply.github.com>
Co-authored-by: Sam Edson <samedson@google.com>
Co-authored-by: Gil <mcg@google.com>
Co-authored-by: christibbs <43829046+christibbs@users.noreply.github.com>
Co-authored-by: Alex Singer <alexsinger@users.noreply.github.com>
Co-authored-by: Rosalyn Tan <rosalyntan@google.com>
Co-authored-by: akiva <akiva.bamberger@gmail.com>
Co-authored-by: Di Wu <49409954+diwu-arete@users.noreply.github.com>
Co-authored-by: dmandar <dmandar@users.noreply.github.com>
Co-authored-by: ChaoqunCHEN <cqchen93@gmail.com>
Co-authored-by: Morgan Chen <morganchen12@gmail.com>
Co-authored-by: Cleo Schneider <cleoschneider@google.com>
Co-authored-by: Yuchen Shi <yuchenshi@google.com>
Co-authored-by: Daisuke TONOSAKI <daisuke.t.jp@gmail.com>
Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
Co-authored-by: Jim Hays <54556994+jim-hays-root@users.noreply.github.com>
Co-authored-by: Sam Stern <samstern@google.com>
Co-authored-by: Eldhose M Babu <eldhosembabu@google.com>
Co-authored-by: vic-flair <vicflair4life@gmail.com>
Co-authored-by: Adam Duke <94930+adamvduke@users.noreply.github.com>
manjanac added a commit that referenced this pull request Nov 17, 2020
* Restores ML Pods after M77.

* Initial structure for Swift library.

* Custom model (#6594)

* Initial commit for CustomModel class.

* Initial commit for CustomModel class.

* API scaffolding for CustomModel and ModelDownloader classes

* API scaffolding for CustomModel and ModelDownloader classes

* Delete ModelDownloadConditions.swift

* Changed Swift structs to NSObject subclasses for objc visibility

* Design for a Swift-first SDK

* Design for a Swift-first SDK

* Design for a Swift-first SDK

* Updated design w/ errors and download progress handler

* Style compliance

* Refactor Test folder structure

* Refactor Test folder structure

* Fix pod lint errors

* Fix pod lint errors

* Add xcscheme for SwiftPM builds.

* Disable catalyst temporarily, re-enable issue #6790

* Better classification of download errors

* Documentation comments for custom model

* Refactor errors for model downloading

Co-authored-by: Ryan Wilson <wilsonryan@google.com>

* Update to Firebase 7.0 and add Installations dependency

* ML master update (#6891)

* Restores ML Pods after M77.

* Remove deprecated sendLogsWithServiceName (#6437)

* Remove deprecated pods from Firebase.h and Firebase.podspec (#6438)

* Remove the FCM Direct Channel API from Messaging (#6430)

* Remove unnecessary Core private headers (#6439)

* Update SPM docs to current version (#6524)

* Update podspecs to min iOS 10 (#6517)

* Merging the 6.33.0 release into master (#6523)

* Update versions for Release 6.33.0

* SPM M80(6.33.0) Analytics update (#6490)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>

* Merge 6.33 SPM fixes back to master (#6530)

* SPM M80(6.33.0) Analytics update (#6490)
* Remove unnecessary analytics public header copy (#6498)
* Fix SPM analytics warning introduced yesterday (#6504)
* Fix SPM version (#6527)

* Import Spec tests (#6525)

* Import Spec tests

* Init

* Add recovery specs

* Update FSTSyncEngineTestDriver.mm

* Add release candidate prerelease workflow. (#6487)

This also update cocoapods source to cocoapods repo since cdn is failed to connect.

* Move internal Crashlytics changes to Github (#6535)

Move *most* internal Crashlytics changes to Github

* GDTCORFlatFileStorageTest size limit tests: use timeout proportional to the number of events (#6537)

* IID: repo-relative headers (#6539)

* Use Xcode 12 in CI instead of the beta (#6542)

* SwiftPM for FCM (#6541)

* Fix a rare RC crash (#6556)

* Refactoring archive testing to a single yml file. (#6510)

* Refactoring archive testing to a single yml file.

This reduces the duplication in each of the workflow files. This also
will make archive testing with SwiftPM more straightforward.

* Prefixed with 'pod' name

* Commenting out to run archive testing on PR for now.

* Put array on single line

The yml won't be parsed unless the `pod` array is on a single line.

* Fix to run on PRs to the yml itself.

* Fix naming of AppDistro

* Remove schemes.

* Update versions automation (#6550)

* Remove iOS 10.0 check since minimum support in Messaging is already 10.0 (#6559)

* Add Performance podspec (#6526)

* Integrate Firestore with Firebase platform logging (#6507)

The sample user agent string I'm getting in XCode is `apple-platform/ios apple-sdk/17E8258 fire-fst/1.17.1 fire-ios/6.10.2 swift/true xcode/11E503a`.

* Change lastFetchTime to be readonly (#6567)

* Change lastFetchTime to be readonly

* Add changelog

* GDTCORDirectorySizeTracker: fix NSURL constructor (#6580)

* GDTCORDirectorySizeTracker: replace optional NSURL constructor with non-optional.

* GDTCORDirectorySizeTracker tests for the issue

* ./scripts/style.sh

* changelog

* Upload Symbols 3.4 with performance improvements (#6583)

* Stop requiring pods to be static frameworks (#6557)

* Always send the user agent regardless of the heartbeat value (#6592)

Any non-zero heartbeat value is immediately reset to zero upon retrieval. Thus, should the network request containing the heartbeat value and the user agent string fail, the previous logic would prevent us from sending the user agent string until the next day (when the heartbeat once again returns a non-zero value). Until this is resolved, always send the user agent string, regardless of the heartbeat value. The associated increase in bandwidth usage is minor (~1.2% in _total_ traffic from running the full suite of Firestore integration tests, which represent the worst-case scenario because they recreate the streams much more often than a typical application).

* Make all GoogleUtilities APIs public (#6588)

* Make FirestoreException a type defined by Firestore/core (#6589)

Move FirestoreInternalError to firebase::firestore to match
FirestoreException in Android.

When importing this into google3, we'll have to delete the
Android-specific version of this type.

* Update CHANGELOG for Firestore v1.19.0 (#6601)

* Remove deprecated method in ABT public header (#6602)

* Remove deprecated method, implementation

* Replace call to deprecated method in RC, fix tests

* Update changelogs

* Add InstanceID deprecation warning (#6585)

* Firebase 7 Firebase.podspec versions (#6604)

* Add a changelog entry for Firestore platform logging (#6603)

* 6.34.0 CHANGELOG update (#6611)

* Migrate FIRLoggerServices strings from Core to clients (#6608)

* Add static-framework testing to CI (#6599)

* 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

* Update versions for Release 6.34.0

* 6.34.0 updates for SwiftPM (#6614)

* M81 FIS cherry pick of #6570 (#6616)

* 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

* Update versions

* patch version

* release manifest

* Add link to App Distribution docs page (#6620)

* Add link to App Distribution docs page

* Remove trailing whitespaace

* FIS IID tests shouldn't use repo-relative imports

* Clean up usage of deprecated methods in unit tests (#6618)

* Clean up usage of deprecated methods in unit tests

* Add back second namespace tests

* Remove test for setDefaults:namespace:

* Remove deprecated auth APIs (#6607)

* Remove deprecated APIs from public header.

* Remove deprecated API implementations.

* Also remove deprecated APIs from FIRUser.

* Update unit tests.

* Update sample app.

* Update changelog.

* Use MIMEType for image download extension if not present in resource URL (#6591)

* ZipBuilder Firebase 7 updates (#6629)

* Change numberValue to be nonnull (#6623)

* Change numberValue to be nonnull

* Add changelog

* Add auth emulator support to public API. (#6624)

* Add auth emulator support to public API.

* Update changelog.

* FIS: don't log anything on success validation (#6635) (#6636)

* Remove the `FirebaseOptions()` bare initializer. (#6633)

* Remove the `FirebaseOptions()` bare initializer.

This was unintentionally surfaced from the ObjC header and should be
removed.

Note: although the existing initializer doesn't work, this is still a
breaking change.

* Style

* Changelog update.

* Remove deprecated elements of FIAM API (#6617)

* Remove deprecated FIAM API

* Remove call to deprecated method

* Fix imports

* Modify view controllers to use dummy test subclasses for message objects

* Add bridging header, include it in test app

* Add CHANGELOG entry

* Revert "Add CHANGELOG entry"

This reverts commit 55c0bbc.

* Add CHANGELOG entry

* Swift formatting

* Add LLC to copyright notice

* Revert "Fix imports"

This reverts commit 55fdbbd.

* FIS: disable IID migration tests by default (#6619)

* FIS: disable IID migration tests by default

* remove redundant env variable

* Fix merge errors

* Merge FLoC SDK into master branch. (#6466)

* Create Segmentation SDK structure for source and unit tests. (#3214)

* Create Segmentation SDK structure for source and unit tests.

* Review changes: Remove unnecessary files in test folder. Add md-floc-master to CI

* Rename Segmentation directory to FirebaseSegmentation directory. Update podspec to include search header path.

* Add core support with interop for Segmentation SDK.  (#3430)

* Add core support with interop for Segmentation SDK. Also update headers to be under sources folder.

* Review fixes.

* Minor changes.

* Fix style.

* Fix style.

* Style changes.

* Fix whitespace in travis.yml

* Fix style.

* Travis CI is stuck..try updating the travis.yml

* Undo travis.yml change.

* Working drop of Segmentation SDK along with test app and unit tests. (#4574)

* Working drop of Segmentation SDK along with sample app and unit tests.

* Update if_changed.sh to include FirebaseSegmentation.

* Complete NS_ASSUME_NON_NULL_START with NS_ASSUME_NON_NULL_END in header file.

* Fix unit tests.

* Fix style.

* Fixes after running XCode's static analyzer.

* Fix style.

* fix style.

* 'pod lib lint' fixes.

* Fix analyzer errors.

* Address review comments.

* Minor changes for review comments.

* Address review comments.

* Address review comments.

* stop mocking in tear down method for tests.

* Minor update to sample app project.

* Fix trailing whitespace in Podfile.

* Add set -x to check.sh

* update segmetation dependency version

* migrate FloC SDK to depend on FIS SDK directly

* format floc

* format

* using customized FIRapp

* remove test plist file

* refactor to capture weakself

* format

* replace partial mock with class mock

* minor refactoring

* use subscript to manipulate dictionary instance

* fix import error

* minor refoctoring, addressing comments

* address comments

* fix configurations

* format

Co-authored-by: dmandar <dmandar@users.noreply.github.com>
Co-authored-by: ChaoqunCHEN <cqchen93@gmail.com>

* Remove deprecated RC APIs (#6637)

* Remove deprecated method declarations and implementations

* Fix broken dangerfile (#6642)

* GDT: Move GDTCORAssert.h to internal headers (#6638)

* Move GDTCORAssert.h to internal headers

* Fix import

* Update check_imports check (#6640)

* Stop using CocoaPods private headers (#6572)

* Add check for unauthenticated error and sign out in fetchNewLatestRelease (#6648)

* Add check for unauthenticated error and sign out in fetchNewRelase method

* Update CHANGELOG

* Add check for Tester sign in before calling fetch

* One Firebase version (#6634)

* Update Symbol Collision Test for Firebase 7 (#6656)

* Fix ZipBuilder crash and warning (#6653)

* Public Version API (#6651)

* Bump nanopb to fix Xcode 12 warning (#6659)

* Fix breakage from #6651 (#6660)

* GDT: move some headers from public to internal (#6643)

* Move extra public headers to Internal and fix imports

* Cleanup

* Use relative paths in internal headers

* Fix imports in internal headers

* ./scripts/style.sh

* Fix GDTTestApp

* Fix test app

* Use real uploader for watchOS test app

* comma

* Update the sample project link. (#6661)

* Simplify FirebaseCore imports (#6664)

* Call fetchAndActivate completion handler on main thread (#6665)

* Call fetchAndActivate completion handler on main thread

* Add changelog

* Update changelog to use issue number

* Missing Foundation import (#6670)

* Remove duplicate section for instructions. (#6668)

* FirebaseInstallations import added to Firebase.h (#4908)

* FirebaseInstallations import added to Firebase.h

* Add Installations to Firebase.podspec

* UI_USER_INTERFACE_IDIOM() was deprecated in iOS 14 (#6576)

* Update FirebaseAnalytics to the latest version from the release branch. (#6675)

* Remove deprecated -[FIRInstanceID appInstanceID:] (#6677)

* Remove deprecated -[FIRInstanceID appInstanceID:]

* changelog

* typo fix

* Messaging token refresh delegate should be able to return null token (#6647)

* Cherry-pick two 6.34.0 commits to master (#6688)

* Update changelogs (#6649)
* Speedup SwiftPM (#6687)

Co-authored-by: Morgan Chen <morganchen12@gmail.com>

* Fix a google3 build error (#6689)

* Fix an issue notification is not received during app first install (#6669)

* 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 69739dd.

* Revert "fix debug"

This reverts commit 84fcbc7.

* Revert "debug test quickstart with no xcpretty"

This reverts commit 1fa21ed.

* C API for Firebase Version (#6690)

* Fix retain cycle build issue (#6693)

* Provide version for FDL 1P builds (#6679)

* Fix tvOS storage issues. (#6658)

* Fix tvOS storage issues.

On tvOS devices, the ApplicationSupport directory cannot be used.
Unfortunately this doesn't come up in simulator testing, only on device.
This hasn't been fully tested on device but given that any writes to the
ApplicationSupport directory fail on tvOS, this change can't break much.

Fixes #6612

@defagos can you please give this a test?

* Fixed changed dir name for RC

* Fixed test naming, too.

* Fix the documentation comment for GoogleUtilities.

* Updated changelog.

* Review feedback

* Fixed CHANGELOG location. (#6698)

* Fix CI/regression - update for change FCM API (#6699)

* Support paths with + in List API (#6700)

* Update API documentation referencing removed methods (#6667)

* Update API documentation to remove references to removed methods

* Add changelog

* Address comments

* Merge release-6.34.0 branch after patch (#6701)

* Update versions for Release 6.34.0

* 6.34.0 updates for SwiftPM (#6614)

* M81 FIS cherry pick of #6570 (#6616)

* 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

* Update versions

* patch version

* release manifest

* FIS: don't log anything on success validation (#6635)

* Update changelogs (#6649)

* GoogleDataTransport: deprecated API conditions (#6697)

* GoogleDataTransport: deprecated API conditions

* Version bump

* use `TARGET_OS_IOS`

* changelog

* changelog

* style

* Fix merge

Co-authored-by: Ryan Wilson <wilsonryan@google.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: Morgan Chen <morganchen12@gmail.com>

* Refactor GULSwizzledObject to ARC to unblock SwiftPM support (#5862)

* Refactor GULSwizzledObject to ARC to unblock SwiftPM transition.

* run ./scripts/style.sh

* Assert a single swizzler per swizzled object.

* testMultiSwizzling: fix iOS 10 tests

* Changelog

* Cleanup

* Address floc review comments (#6691)

* Address floc review comments

* Fix style

* fix bad synthesize

* Remove segmentation constants from core

* fix style

* Allow Generic OAuth for Facebook and Apple when using the auth emulator. (#6702)

* Update NOTICES now that several FirebaseML pods are deleted (#6709)

* Log warning instead of failing SDK when discovering dangling target. (#6685)

* Log warning instead of failing SDK when discovering dangling target.

* Add unit test

* Delete old test.

* Initial SPM building for watchOS (#6705)

* Update testing account since the previous one is disabled for GHA. (#6652)

* Update the version of analytics to the latest released one. (#6562)

* Disable deprecation warning (#6512)

* Remove the `FIR` prefix from notification constants. (#6645)

* Remove the `FIR` prefix from notification constants.

* Enable Firebase 7 path in quickstart test

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>

* Change instances of 'dimiss' to 'dismiss' (#6708)

* Use completion handler when updating experiments after activation (#6711)

* Use completion handler when updating experiments after activation

* Fix Travis

* Add changelog

* Fix whitespace

* Nonnull initializers

* Firebase user agent: additional fields for platform logging (#6429)

* Move firebase user agent logic to a separate class.

* FIRAppTest: prefix some tests with the tested method names

* FIRAppTest: user agent new fields tests

* New user agent field added.

* Headers

* API docs

* ./scripts/style.sh

* nullability fix

* Move environment info methods to GoogleUtilities

* GULAppEnvironmentUtilTest

* GULAppEnvironmentUtil swift tests

* FirebaseApp user agent swift flag test

* ./scripts/style.sh

* Cleanup CoreDiagnostics

* Nullable device model

* FIRCoreDiagnosticsTest fix

* Merge fixes

* Fix import

* rename

* Cleanup GUL imports (since all headers are public now)

* Don't allow logger version deallocation (#6719)

* s/withMaxResults/maxResults (#6714)

* Remove support for setting timestampsInSnapshotsEnabled (#6622)

Snapshots will now always include `FIRTimestamp` values. Use
`[FIRTimestamp dateValue]` to convert to `NSDate` if required.

`timestampsInSnapshotsEnabled` was deprecated in Firebase 5.16.0
(January 22, 2019) and has defaulted to true since then.

Projects that have not enabled `timestampsInSnapshotsEnabled` have
logged a warning since Firebase 4.12.0 (April 10, 2018).

* FIS API docs: use term "installation auth token" consistently. (#6014)

* FIS API docs: use term "Installation auth token" consistently.

* Changelog

* Capitalize

* Use lowercase

* SHA1 usage explanation

* missed upper case

* a -> an

* Minor RC cleanup (#6722)

* Cleanup developer mode variables

* Fix README link

* Use fully qualified namespace in test to avoid errors

* Fix whitespace

* Re-enable quickstart testing for FirebaseUI apps (#6725)

* Update GDT version for M82 (#6729)

* Update versions for Release 7.0.0

* ios version fixes

* Delete Test dependency

* Add manual trigger and update catching branch version. (#6732)

* One version release process (#6724)

* Missing iid handler checking cause crash (#6737)

* Fix spelling in header name (#6738)

* Travis GoogleUtilities :  skip Swift tests when --use-libraries (#6735)

* Travis GoogleUtilities :  skip Swift tests when --use-libraries

* Temporary enable cron tests for PRs to check

* Revert temp change

* Add update-tags release process (#6739)

* Firebase zip contents from FirebaseManifest instead of textproto (#6747)

* Add Carthage JSON manifests to git repo (#6742)

* Address #6747 review comments (#6749)

* CocoaPods CI update (#6751)

* CocoaPods CI update

* CocoaPods CI update

* Restore cron after test success

* FIS docs: whitelist -> allowlist (#6757)

* FIS docs: whitelist -> allowlist

* Changelog

* Changelog fix

* Revert accidently added GUL change

* GoogleUtilities: NSURLSession promise extension (#6753)

* GoogleUtilities: NSURLSession promise extension

* Imports fix

* Changelog

* API and API docs

* style

* Changelog fix

* Finish port of update-versions.py (#6758)

* Finish port of update-versions.py

* comments

* more comment

* Prevent test build errors under Xcode 12.1 (#6760)

Xcode 12 changed the XCTest assertions to be macros that no longer implicitly depended on `self`. It seems as if Xcode 12.1 has made -Wunused-lambda-capture part of our default warnings and this breaks Objective-C++ code that lambda captures `self` only for its implicit use with the XCTest macros.

This isn't common, so just suppress the warning by forcing `self` to appear used regardless of whether XCTest assertions reference `self` or not.

* Exclude FirebaseSegmentation in testing (#6736)

* Some Release tooling cleanup (#6761)

* Only run schedule actions on the main repo (#6770)

* Rename ReleaseTooling (#6772)

* Address two comments from last week's PRs (#6774)

* Source updates for ReleaseTooling rename (#6773)

* Fix a memory leak introduced in #6418 (#6778)

The root of the issue is that when serializing a singular filter, it is being treated as a unary filter before it is definitively established whether it is a unary filter or a field filter. The leak is caused by always serializing the unary filter's field path field for equality and non-equality filters -- if the filter's value turns out not to be NaN or null, the serialization code switches the filter's type to a field filter without clearing the partially-initialized unary filter. `pb_release` would not free the `unary_filter.field.field_path` member variable because it would consider the object not to be a unary filter.

Also a small refactoring to make the function easier to digest.

* Fix typo to fix zip cron (#6784)

* Fix cron logic for forks (#6785)

* Crashlytics update run script to quote all arguments passed (#6789)

* Adjust Storage Timeouts to GTM's retry interval (#6791)

* Add custom domain support to callable functions (#6787)

* Update to CocoaPods 1.10.0 (#6795)

* Restore zip cron test (#6798)

* Fixed broken callback to AppDelegate (#6800)

Fixed broken callback to AppDelegate after retrieving a dynamic link during fresh app start.
The AppDelegate call was broken in PR : #6517

Reverting to the old implementation of dynamic link passing to App delegate with changes to remove iOS 9 checks.
Using new "openURL" method instead of the deprecated one.
Clean up in the sample app pod file.

* Merge release-7.0 branch to master (#6797)

* Update cron tests for new Swift product names (#6804)

* Stop failing on warnings (#6807)

* Merge SPM updates back to master to fix CI (#6809)

* Add support for other Firebase products to integrate with Remote Config. (#6692)

* Update zip builder to handle xcframeworks from binary pods (#6815)

* Readme and Roadmap updates (#6816)

* Fix typo on publish command (#6831)

* Update SPM instructions for 7.0 (#6832)

* Fix publish order - RemoteConfig is a dependency of Performance (#6834)

* Post-release 7.0 merge to master  (#6836)

* Firebase user agent: add iOS on mac platform (#6799)

* Firebase user agent: add iOS on mac platform

* Older Xcode compatibility

* Fix check iOS version

* changelog

* Carthage updates for 7.0.0 (#6833)

* Adding test to make sure pending dynamic link is getting passed to App delegate method. (#6819)

Adding unit test to make sure the pending dynamic link is getting delivered to specific method in App delegate.

* Remove Component version from issue template (#6838)

* Run integration tests against the emulator by default. (#6852)

Remove support for running against Hexa, which we haven't done in years. Integration tests will now assume a local emulator by default.

Once imported into google3, this will make it significantly easier to run integration tests against cls from third-parties because this will be able to use the emulator we're already running rather than requiring us to build hexa again.

* Fix cache for check workflow (#6853)

* clarify error when logging settings failures (#6847)

Added additional logging when settings requests fail with a 404 status to help customers debug onboarding issues.

* Update Firestore macOS build for Xcode 12 (#6859)

* Remove usages of "whitelist" in Firestore. (#6846)

Fixes #6755.

* Allocate global objects so that their destructors don't run. (#6849)

Fixes #6844.

* Fix minor style issues uncovered during auditing (#6851)

* Remove explicit MobileCoreServices from podspecs (#6858)

* Change the Crashlytics version constant to read from FIRCore instead of from a build flag. (#6712)

* Get rid of an additional import of FIRVersion that I missed deleting (#6867)

* Merge #6860 to master (#6868)

* Fix warning introduced with Xcode 12 (#6865)

* GDTCCTUploader: lazy initialize url session, use ephemeral session (#6870)

* GDTCCTUploader: lazy initialize url session, use ephemeral session

* Changelog

* typo

* Update to Firebase 7.0 and add Installations dependency

* Fix lint errors

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: Chen Liang <chliang@google.com>
Co-authored-by: Maksym Malyhin <mmaksym@google.com>
Co-authored-by: Sebastian Schmidt <mrschmidt@google.com>
Co-authored-by: Gran <ollkorrect999@gmail.com>
Co-authored-by: Tejas Deshpande <tdeshpande@google.com>
Co-authored-by: Ryan Wilson <wilsonryan@google.com>
Co-authored-by: Konstantin Varlamov <var-const@users.noreply.github.com>
Co-authored-by: karenyz <58443706+karenyz@users.noreply.github.com>
Co-authored-by: Sam Edson <samedson@google.com>
Co-authored-by: Gil <mcg@google.com>
Co-authored-by: christibbs <43829046+christibbs@users.noreply.github.com>
Co-authored-by: Alex Singer <alexsinger@users.noreply.github.com>
Co-authored-by: Rosalyn Tan <rosalyntan@google.com>
Co-authored-by: akiva <akiva.bamberger@gmail.com>
Co-authored-by: Di Wu <49409954+diwu-arete@users.noreply.github.com>
Co-authored-by: dmandar <dmandar@users.noreply.github.com>
Co-authored-by: ChaoqunCHEN <cqchen93@gmail.com>
Co-authored-by: Morgan Chen <morganchen12@gmail.com>
Co-authored-by: Cleo Schneider <cleoschneider@google.com>
Co-authored-by: Yuchen Shi <yuchenshi@google.com>
Co-authored-by: Daisuke TONOSAKI <daisuke.t.jp@gmail.com>
Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
Co-authored-by: Jim Hays <54556994+jim-hays-root@users.noreply.github.com>
Co-authored-by: Sam Stern <samstern@google.com>
Co-authored-by: Eldhose M Babu <eldhosembabu@google.com>
Co-authored-by: vic-flair <vicflair4life@gmail.com>
Co-authored-by: Adam Duke <94930+adamvduke@users.noreply.github.com>

* Fix lint errors

* user defaults backed properties for model info + unit test

* fis token WIP

* get local model info WIP

* get local model info WIP

* Improvements to user defaults and FIS token + network tests

* Improvements to user defaults and FIS token + network tests

* Improvements to user defaults and FIS token + network tests

* Improvements to user defaults and FIS token + network tests

* TODOs for force-unwrapping + changing ModelInfo to class

Co-authored-by: Ryan Wilson <wilsonryan@google.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
Co-authored-by: Chen Liang <chliang@google.com>
Co-authored-by: Maksym Malyhin <mmaksym@google.com>
Co-authored-by: Sebastian Schmidt <mrschmidt@google.com>
Co-authored-by: Gran <ollkorrect999@gmail.com>
Co-authored-by: Tejas Deshpande <tdeshpande@google.com>
Co-authored-by: Konstantin Varlamov <var-const@users.noreply.github.com>
Co-authored-by: karenyz <58443706+karenyz@users.noreply.github.com>
Co-authored-by: Sam Edson <samedson@google.com>
Co-authored-by: Gil <mcg@google.com>
Co-authored-by: christibbs <43829046+christibbs@users.noreply.github.com>
Co-authored-by: Alex Singer <alexsinger@users.noreply.github.com>
Co-authored-by: Rosalyn Tan <rosalyntan@google.com>
Co-authored-by: akiva <akiva.bamberger@gmail.com>
Co-authored-by: Di Wu <49409954+diwu-arete@users.noreply.github.com>
Co-authored-by: dmandar <dmandar@users.noreply.github.com>
Co-authored-by: ChaoqunCHEN <cqchen93@gmail.com>
Co-authored-by: Morgan Chen <morganchen12@gmail.com>
Co-authored-by: Cleo Schneider <cleoschneider@google.com>
Co-authored-by: Yuchen Shi <yuchenshi@google.com>
Co-authored-by: Daisuke TONOSAKI <daisuke.t.jp@gmail.com>
Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
Co-authored-by: Jim Hays <54556994+jim-hays-root@users.noreply.github.com>
Co-authored-by: Sam Stern <samstern@google.com>
Co-authored-by: Eldhose M Babu <eldhosembabu@google.com>
Co-authored-by: vic-flair <vicflair4life@gmail.com>
Co-authored-by: Adam Duke <94930+adamvduke@users.noreply.github.com>
@firebase firebase locked and limited conversation to collaborators Nov 22, 2020
@paulb777 paulb777 deleted the vlum.p13n branch January 10, 2021 00:42
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.