Skip to content

Update to Firebase iOS SDK 9.0.0 with necessary changes for Swift support and Firestore #915

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

Merged
merged 109 commits into from
May 5, 2022

Conversation

jonsimantov
Copy link
Contributor

@jonsimantov jonsimantov commented Apr 25, 2022

Description

Provide details of the change, and generalize the change in the PR title above.

9.0.0 cocoapods have a number of changes, including some SDK implementations moved to Swift. This change adds copies of the Swift bridging headers to our source repo and fixes #include/#import statements to pull in the right things (and modifies the update-dependencies workflow to pull in those files each time). Integration tests need an empty .swift file to ensure the Swift runtime is included.

This also includes changes from #898 to fix Firestore, plus some header path fixes.

AdMob dependency has been updated to a placeholder version that's compatible with 9.0.0.

Finally, Firebase iOS 9.x requires Xcode 13, so update our Xcode version to 13.3.1 (which fixes a nasty bug in 13.2.1 with iOS 11/12).


Testing

Describe how you've tested these changes. Link any manually triggered Integration tests or CPP binary SDK Packaging Github Action workflows, if applicable.

Integration tests run via label.
C++ packaging workflow manually run.


Type of Change

Place an x the applicable box:

  • Bug fix. Add the issue # below if applicable.
  • New feature. A non-breaking change which adds functionality.
  • Other, such as a build process or documentation change.

Notes

  • Bug fixes and feature changes require an update to the Release Notes section of release_build_files/readme.md.
  • Read the contribution guidelines CONTRIBUTING.md.
  • Changes to the public API require an internal API review. If you'd like to help us make Firebase APIs better, please propose your change in a feature request so that we can discuss it together.

dconeybe and others added 24 commits April 14, 2022 18:03
…, which now just returns a google_firestore_v1_Value instead of a Message<google_firestore_v1_Value>
…g Objective-C parts of the iOS SDK

This fixes the following build error:

```
FIRFirestore.h:147:20: error: unknown attribute 'swift_async' ignored [-Werror,-Wunknown-attributes]
    __attribute__((swift_async(none)));  // Disable async import due to #9426.
                   ^
1 error generated.
```

which was introduced by firebase/firebase-ios-sdk#9502
This is an attempt to fix the following build error:

```
Traceback (most recent call last):
  File "Firestore/Protos/tmphmjWeu.py", line 25, in <module>
    import nanopb_generator as nanopb
  File "nanopb/generator/nanopb_generator.py", line 25, in <module>
    import google.protobuf.text_format as text_format
  File "protobuf/python/google/protobuf/text_format.py", line 51, in <module>
    import six
ImportError: No module named six
```

e.g. https://github.com/firebase/firebase-cpp-sdk/runs/6034310890
…ts usage ubiquitous"

It seemed to cause problems with the build. There is a better way in the iOS SDK anyways.

This reverts commit c6346fd.
This fixes several test failures due to incorrect handling of startAfter and endBefore resulting from a change in core::Bound from "before" to "inclusive" in firebase/firebase-ios-sdk#9519

Namely, this fixes the following failure:
```
cursor_test.cc:250: Failure
Expected equality of these values:
  std::vector<std::string>({"c", "f", "b", "e"})
    Which is: { "c", "f", "b", "e" }
  QuerySnapshotToIds(snapshot)
    Which is: { "c", "f" }
[  FAILED  ] FirestoreIntegrationTest.TimestampsCanBePassedToQueriesAsLimits
```

e.g. https://github.com/firebase/firebase-cpp-sdk/runs/6044737005
Add Swift headers from 9.0.0 zip release.
@github-actions github-actions bot added the tests: in-progress This PR's integration tests are in progress. label Apr 25, 2022
@github-actions
Copy link

github-actions bot commented Apr 25, 2022

Integration test with FLAKINESS (succeeded after retry)

Requested by @jonsimantov on commit e4f7f12
Last updated: Thu May 5 17:13 PDT 2022
View integration test log & download artifacts

Failures Configs
database [TEST] [FLAKINESS] [Android] [1/3 os: ubuntu] [1/2 android_device: android_target]
(1 failed tests)  FirebaseDatabaseTest.TestInfoConnected
firestore [TEST] [FLAKINESS] [Android] [1/3 os: windows] [1/2 android_device: android_target]
(1 failed tests)  ServerTimestampTest.TestServerTimestampsUsesPreviousValueFromLocalMutation

Add flaky tests to go/fpl-cpp-flake-tracker

@jonsimantov jonsimantov requested a review from a-maurice May 4, 2022 19:47
@jonsimantov jonsimantov added the tests-requested: quick Trigger a quick set of integration tests. label May 4, 2022
@github-actions github-actions bot added tests: in-progress This PR's integration tests are in progress. and removed tests-requested: quick Trigger a quick set of integration tests. tests: succeeded This PR's integration tests succeeded. labels May 4, 2022
@github-actions github-actions bot added the tests: failed This PR's integration tests failed. label May 4, 2022
@firebase-workflow-trigger firebase-workflow-trigger bot removed the tests: in-progress This PR's integration tests are in progress. label May 4, 2022
@jonsimantov jonsimantov added the tests-requested: quick Trigger a quick set of integration tests. label May 5, 2022
@github-actions github-actions bot added tests: in-progress This PR's integration tests are in progress. and removed tests-requested: quick Trigger a quick set of integration tests. tests: failed This PR's integration tests failed. labels May 5, 2022
@jonsimantov jonsimantov changed the title Changes needed for 9.0.0 cocoapods Update to Firebase iOS SDK 9.0.0 with necessary changes for Swift support and Firestore May 5, 2022
@github-actions github-actions bot added the tests: succeeded This PR's integration tests succeeded. label May 5, 2022
@firebase-workflow-trigger firebase-workflow-trigger bot removed the tests: in-progress This PR's integration tests are in progress. label May 5, 2022
@jonsimantov jonsimantov requested a review from DellaBitta May 5, 2022 07:08
@jonsimantov jonsimantov merged commit e4f7f12 into main May 5, 2022
@jonsimantov jonsimantov deleted the other/test_ios_900_pods branch May 5, 2022 20:52
@github-actions github-actions bot added tests: in-progress This PR's integration tests are in progress. tests: succeeded This PR's integration tests succeeded. and removed tests: succeeded This PR's integration tests succeeded. labels May 5, 2022
@firebase-workflow-trigger firebase-workflow-trigger bot removed the tests: in-progress This PR's integration tests are in progress. label May 6, 2022
@firebase firebase locked and limited conversation to collaborators Jun 5, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
tests: succeeded This PR's integration tests succeeded.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants