Commit Graph
133 Commits
Author SHA1 Message Date
Gil 7a58eba2e5 Remove firebase/firestore from paths in Firestore/core (#5374)
* Manual Xcode project fixups

* Remove `firebase/firestore` from paths in Firestore/core

This renames all Firestore files under `Firestore/core` to remove the
interior `firebase/firestore` directory structure. This is motivated by
build failures under Windows where the filenames of intermediates were
too long.

Concretely:

  * `Firebase/core/src/firebase/firestore` becomes `Firebase/core/src`
  * `Firebase/core/test/firebase/firestore` becomes
    `Firebase/core/test/unit`

Moving the tests into a `unit` subdirectory aligns Firestore with the
directory structure in
[AddNewPod](https://github.com/firebase/firebase-ios-sdk/blob/master/AddNewPod.md),
modified for C++ (see discussion in #3224).
2020-04-20 14:57:34 -07:00
Ryan Wilson b38f44d1d5 Merging the 6.22.0 release into master (#5319) 2020-04-08 16:44:22 -07:00
Paul Beusterien e338339c59 Remove platforms from podspec summaries (#5229) 2020-03-31 10:21:48 -07:00
Gil 54a1db1dc7 Explicitly state Firestore's dependency on UIKit (#5077)
* Explicitly state Firestore's dependency on UIKit (#5067)

In #4985 we added support for listening to
`UIApplicationWillEnterForegroundNotification` notifications to better
handle situations where we may have missed callbacks from
`SCNetworkReachabilitySetCallback` while Firestore was in the background.

Fixes #5065.

* Update CHANGELOG for Firestore v1.11.2
2020-03-11 11:19:56 -07:00
Maksym Malyhin b0e59312b8 Update versions for Release 6.19.0 2020-03-04 11:08:06 -05:00
Ryan Wilson f9a0ee2727 Merging the 6.18.0 release into master (#4974)
* Update versions for Release 6.18.0

* Forward declare class to fix linting. (#4935)

* Revert "Forward declare class to fix linting. (#4935)" (#4937)

This reverts commit 64bbf378bb.
2020-02-26 08:43:38 -08:00
Paul Beusterien e70f1ed1c7 Merge 6.17.0 (#4885) 2020-02-11 08:27:12 -08:00
Maksym MalyhinandPaul Beusterien a09718a7f2 Merge release 6.16.0 (#4763)
* Update versions for Release 6.16.0

* FirebasePerformance 3.1.10

* Firebase podspec - set ios.deployment_target = '9.0'  for InAppMessaging

* Delete duplicate function (#4744) (#4748)

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

* Firebase.podspec: Revert Performance version bump (#4758)

Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2020-01-28 18:04:14 -05:00
2328d1f365 Merging the 6.15.0 release into master (#4682)
* Update versions for Release 6.15.0

* Update podspec dependencies for M62 (#4640)

* Cherry-picks for M62. (#4650)

* Include GoogleUtilities in the release manifest.

* Crashlytics fix header import ordering issue (#4649)

Co-authored-by: Sam Edson <samedson@google.com>

Co-authored-by: Ryan Wilson <wilsonryan@google.com>
2020-01-14 16:21:34 -08:00
Paul Beusterien 0f21622749 Post Firestore 1.8.3 master merge (#4520) 2019-12-18 11:47:40 -08:00
Paul Beusterien 76c766a866 Release 6.14.0 (#4513) 2019-12-17 11:36:36 -08:00
Paul Beusterien 49e48a0dfc Post Firestore 1.8.1 patch merge to master (#4366) 2019-11-19 21:01:44 -08:00
Konstantin Varlamov 57f8d7d675 Embed root certificates into the binary on Apple platforms as well (#4352)
Currently, on iOS Firestore is loading `roots.pem` file from the gRPC bundle. The mechanism has proved to be brittle, so instead we can use the same approach as the CMake build does -- parse the file at build time and embed its contents into the binary.

One downside of this approach is that now we would have to periodically update the generated files for embedding manually. Judging from history, `roots.pem` is updated quite often in gRPC repo, and can be expected to be modified on each release.

The command to regenerate the certificates is something like:
```sh
mkdir build # From the root of the repo
cd build
cmake .. && make -j 8 generate_grpc_root_certificates
```

TESTED=with Fireeats.
2019-11-19 01:50:08 -05:00
Ryan Wilson 3261d120a9 Update versions for Release 6.13.0 (#4318) 2019-11-14 16:50:23 -08:00
Konstantin Varlamov 62ef244cde C++ migration: remove the dependency on Objective-C Protobuf library (#4189) 2019-11-07 20:39:53 -05:00
Maksym Malyhin d18d515739 Merging the 6.12.0 release into master (#4223)
* Update versions for Release 6.12.0

* Update versions for Release 6.12.0 - Firestore

* Update versions for Release 6.12.0

* Update CHANGELOG for Firestore v1.7.0 (#4195)

* FirebaseCore version bump to 6.3.3 (#4213)

* Release manifst updated. (#4219)

* Revert "Add OIDC nonce support (#4183)" (#4220) (#4222)

This reverts commit ffe4a3a5b4.

* Revert Auth podspec version bump. (#4232)

* Release manifest - Auth removed (#4233)

* 6.12.0: Firebase.podspec FirebaseAuth pod version reverted, cherry-pick #4231 (#4234)

* Firebase.podspec - revert Auth

* check_whitespaces.sh: ignore notices. (#4231)

* Remove unnecessary NOTICES file (#4242)
2019-11-06 14:56:42 -05:00
Gil 1953cc59a4 Integrate with Abseil via CocoaPods (#4097)
Use Abseil 0.20190808
2019-11-05 09:12:34 -08:00
Paul Beusterien a621e59217 Merge 6.11.0 (#4134) 2019-10-22 11:35:29 -07:00
Konstantin Varlamov a59abed15a Firestore podspec: avoid adding Firestore headers to sources (#4054)
See #4035: a certain combination of pods can lead to a broken build. The underlying issue is that CocoaPods generate a header map that includes headers from _all_ the pods in a project. A header map maps short file names to full paths and is unable to handle collisions; thus, in a CocoaPods-based build, if one pod contains a header with a common name, and the other pod tries to import a header with the same short name by relying on header maps (without specifying a longer path), the header from one pod may end up getting erroneously picked up by the other pod.

In that particular case, `SVGKit` is relying on header maps and trying to import `Document.h`, which, for reasons described above, happens to pick up `document.h` from Firestore. However, since header maps cannot handle collisions in general, this could manifest with other pods as well.

The workaround is to avoid adding Firestore header files (except the public ones) to sources.

See https://github.com/facebook/react-native/issues/14326, which describes the same problem.

Fixes #4035.
2019-10-14 14:48:27 -04:00
Ryan Wilson bbcac27b72 Release 6.10.0 (#4022)
* Update versions for Release 6.10.0

* Cherrypick #3983 and include Database in release. (#3986)

* Remove log argument that causes SocketRocket crash (#3983)

* Add FirebaseDatabase to release.

* Update CHANGELOG with version.

* Cherrypick for #3984 along with CHANGELOG update. (#3988)

* Fix race condition in FIRComponentContainer instance creation (#3984)

* Fix race condition in FIRComponentContainer instance creation

Reported in #3967. Users sometimes seeing a crash when multiple threads
concurrently try to create Firestore instances. By inspection I found
that there's a race here where two threads can check for presence in the
cache, see nothing, proceed to creation, both store a value in the cache,
and both return their copies. This would lead to two Firestores being
created for a single App.

This replaces `dispatch_sync` on a serial queue with good old
`@synchronized` blocks. `dispatch_sync` will self-deadlock if called
from a thread already on the queue while `@synchronized` allows
recursion.

No new tests are added because several tests like
`testDependencyDoesntBlock` already cover this case.

* format

* Update Core CHANGELOG

* Update Core CHANGELOG again

* Fix merge from CHANGELOG
2019-10-09 12:10:33 -04:00
Paul Beusterien 01f49c3f79 Use at least Protobuf 3.9.2 (#3916) 2019-09-24 10:29:51 -07:00
Paul Beusterien fb353c22d4 Merge 6.9.0 (#3907)
* Update versions for Release 6.9.0

* Fix unbalanced background task creation in GDTCCTUploader (#3838) (#3839)

* Add Manifest

* dependency version update

* Cherry picks for 6.9.0 (#3871)

* fixed "expiclitlySet" typo. (#3853)

* Mark unused variables (#3854)

* Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10 (#3857)

* Add a third slash to make sure generated docs include these comments.b/13812238 (#3846)
2019-09-23 10:41:33 -07:00
Maksym Malyhin 89a276928c Merging the 6.8.0 release into master (#3783)
* Update versions for Release 6.8.0

* RemoteConfig fix pod spec lint (#3715) (#3716)

* ABTesting: add protos to private headers.

* RemoteConfig: #import <FirebaseABTesting/ExperimentPayload.pbobjc.h>

* ./scripts/style.sh

* Remote Config `pod spec lint` fixes (#3717) (#3718)

* Fix ExperimentPayload.pbobjc.h imports

* RemoteConfig tests: add missing headers to spec.

* Revert ExperimentPayload.pbobjc.h import for ABTesting sources.

* Add FDL to M55 (#3724)

* Remove references to UIWebView from DynamicLinks to comply with Apple "ITMS-90809: Deprecated API Usage" (#3723)
* Add FDL to M55

* Fix accessing a destroyed object (#3721) (#3725)

This was caused by running under Asan with XCode 11. Apparently, previous versions of XCode cannot catch it (which is why Travis is passing, apparently).

Also:
* enable "Detect use of stack after return" option for Asan. AFAIU, it can only be enabled in the scheme. It's already enabled for unit tests, this PR additionally enables it for integration tests;
* make Asan failures fail Travis build. They were originally not considered blocking due to some sporadic failures. I haven't seen those for some time, and worst case scenario, we can revert this change.

* Cherry pick GDT changes for 6.8.0 and increment versions (#3770)

* Release 6.8.0: cherry pick of #3764 and #3766 (#3772)

* Gate access to cached instances. (#3766)

* Gate access to cached instances.

This is causing an issue in #3728. Hopefully this will fix it, but no
repro is available yet to test. There's still an underlying race
condition where a `creationBlock` could be called twice for a component
that is supposed to cache the instance returned, but that should be
addressed in a follow up PR.

* Review feedback.

* Iterate from array copy in `latestExperimentStartTimestampBetweenTimestamp:` (#3764)

* Release 6.8.0 cherry pick: conflicting Dynamic Links changelog changes. (#3790)

* Update FDL CHANGELOG (#3781)

* Issue number, not PR number (#3785)
2019-09-06 15:19:25 -04:00
Paul Beusterien 62af87557d Merge 6.7.0 patch 1 (#3666) 2019-08-23 10:06:48 -07:00
Paul Beusterien d70c873654 Release 6.7.0 (#3646) 2019-08-21 15:41:58 -07:00
Gil d99c6c307d Upgrade LevelDB to 1.22 (#3637) 2019-08-21 08:11:21 -07:00
Gil aefd4323a2 Remove Objective-C immutable sets and maps (#3590)
* Remove Firestore/third_party/Immutable

* Update podspec and sync_project

* Project updates
2019-08-19 09:09:20 -07:00
Paul Beusterien 24a58ad86a Release 6.6.0 (#3518) 2019-08-07 11:03:41 -07:00
Paul Beusterien 35b9f31af2 Update versions for Release 6.5.0 (#3388) 2019-07-19 10:33:02 -07:00
Maksym Malyhin 3238603bbb Update versions for Release 6.4.0 (#3324) 2019-07-09 18:24:15 -04:00
Gil bc29da64e3 Put the need to include Firestore/Source/Public in the podspec (#3288)
This removes the need to munge the pods project after the fact and makes
it so that customers can click through to our headers too.
2019-07-02 09:19:10 -07:00
Ryan Wilson 3374daafd8 Merging the 6.3.0 release into master (#3217)
* Update versions for Release 6.3.0

* Revert "Raise exception when log into Facebook using OAuth.  (#3138)" (#3208) (#3209)

This reverts commit 393d060710.
2019-06-19 16:28:25 -04:00
Gil de7eb4f2e0 Migrate FSTServerTimestampValue to FSTDelegateValue (#3174)
* Migrate FSTServerTimetsampValue to FSTDelegateValue

* Make ServerTimestamp use FSTFieldValue for previous value

This makes it possible integrate the FSTServerTimestampValue changes
earlier.
2019-06-13 22:07:45 -07:00
Paul Beusterien fdbdbb489a Update versions for Release 6.2.0 (#3134) 2019-06-04 09:39:57 -07:00
Gil 2c03297030 Handle new cert bundle name in gRPC-C++ (#3037)
* Bump to gRPC-C++ 0.0.9

This release includes https://github.com/grpc/grpc/pull/19082 which
changes the certificate bundle name to make it possible to have voth
gRPC-C++ and gRPC in the same project.

* Defer loading bundles until needed.

* Handle certificante bundle rename in gRPC-C++ 0.0.9
2019-05-23 10:51:46 -07:00
Maksym Malyhin 39fe9ddd68 Merging the 6.1.0 release into master (#3049)
* Update versions for Release 6.1.0

* Release 6.1.0 - cherry pick of #3007 (#3011)

* 6.1.0 manifest updated. FirebaseInAppMessaging bumped to 0.14.1

* Early return from sending analytics events in instance ID is nil (#3007)
2019-05-21 18:58:06 -04:00
Paul Beusterien 8ed545bd2c Resolve merge conflicts from release-6.0.0 branch (#2958)
* Update versions for Release 6.0.0

* Update FirebaseSDKs.textproto with new fields. (#2818) (#2834)

* Update FirebaseSDKs.textproto with new fields.

* Update message about strip_32bits flag.

* GULAppDelegateSwizzler - proxy APNS methods separately (#2835) (#2858)

* Cherry-picks for M47 RC5 (#2882)

* fix race condition checkin is deleted before writing during app start (#2860)

* GoogleUtilities min ios version from 6 to 8 (#2876)

* Put secret and oauth credentials into the private headers for now. (#2916) (#2919)

* Add missing Messaging weak_framework dep (#2921) (#2930)
2019-05-07 11:35:58 -07:00
Marek Gilbert 706ce02527 Update podspec exclusions for new Abseil upstream 2019-05-06 09:06:21 -07:00
Paul Beusterien 417cfd7cd7 Bump FirebaseCore to 6.0.0 (#2755)
* Bump FirebaseCore to 6.0.0

* FirebaseInstanceID to 4.0.0

* FirebaseInAppMessaging is a dep too
2019-04-08 16:33:01 -07:00
Paul Beusterien 1dd5dfa991 Merge 5.20.1 back to master (#2691) 2019-04-01 06:35:28 -07:00
Paul Beusterien 145c111d1a Minimum osx to 10.11 (#2680) 2019-03-29 16:26:27 -07:00
Paul Beusterien 17f9064cd0 Release 5.20.0 (#2677) 2019-03-29 11:04:13 -07:00
Gil 2e8b9181fa Port FSTUsageValidation to C++ (#2670)
* Port FSTUsageValidation to C++

* Add an error log level
2019-03-28 13:19:28 -07:00
Gil 10ef887d51 Upgrade gRPC-C++ to 0.0.8, enabling experimental tvOS support (#2648) 2019-03-27 13:51:18 -07:00
Gil 811251d710 Exclude sub-packages of abseil that are problematic (#2597) 2019-03-20 13:48:51 -07:00
Paul Beusterien ef6c538748 Release 5.19.0 (#2589)
* Update versions for Release 5.19.0

* update the changelog (#2583)

* Revert #2491 (#2582)
2019-03-19 17:29:18 -07:00
Ryan Wilson 9848883d69 Release 5.18.0 (#2477) 2019-03-05 15:29:36 -08:00
Ryan Wilson 4209aeaa3c Merging the 5.17.0 release into master (#2416)
* Update versions for Release 5.17.0

* Fix the tag in the FIAM podspec.

* Update dependencies for FIAM.

* Updated the FirebaseCore version.

* Fix FIROptions version.

* Temporarily remove FIAM version deps for pod linting.

* Create umbrella header for FIAM (#2392)

This causes an issue when building the zip file - similar to #1857

* Remove FIAM from 5.17.0 release.
2019-02-21 21:29:31 -05:00
Gil 45866ee427 Merge release 5.16.0 (#2306)
* Update versions for Release 5.16.0
* Cherry-picking changes for M41 RC1 (#2277)
* Bump gRPC-C++ pod dependency to 0.0.6 (#2274)
* Update changelog for Dynamic Links to v 3.4.0 (#2272)
* Fix Firestore certificate loading in M41 (#2289)
* Stop bundling gRPC certificates with Firestore (#2279)
  * Remove references to roots.pem
  * Remove gRPCCertificates-Firestore.bundle
* Fix size warning in local_serializer.cc
* Suppress documentation warnings in gRPC
* strip extra references to macOS
* Reference updated Carthage docs and backport CHANGELOG (#2291)
* Carthage cert change
* Backport CHANGELOG updates from cl/230001317
2019-01-23 14:16:17 -08:00
Konstantin Varlamov 97c35f7f87 Stop bundling gRPC certificates with Firestore (#2279)
* Remove references to roots.pem
* Remove gRPCCertificates-Firestore.bundle
2019-01-18 10:54:27 -08:00