From e0c330df75d72d6231cbc6ff655d086d516f2422 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 19 Jul 2023 16:43:27 -0700 Subject: [PATCH 01/14] iOS: Remove Analytics dependency from GMA integration test (#1386) * Try using CoreOnly instead of Analytics cocoapod for tests. * Update readme. --- gma/integration_test/Podfile | 2 +- release_build_files/readme.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index bb8fc51273..3943eeadd6 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '11.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '10.12.0' + pod 'Firebase/CoreOnly', '10.12.0' pod 'Google-Mobile-Ads-SDK', '10.8.0' end diff --git a/release_build_files/readme.md b/release_build_files/readme.md index f4b86eae14..6264e109c0 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -250,7 +250,7 @@ Firebase Functions | firebase_functions.xcframework | | Firebase/Auth Cocoapod (10.12.0) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (10.12.0) +| | Firebase/CoreOnly Cocoapod (10.12.0) | | Google-Mobile-Ads-SDK Cocoapod (10.8.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework @@ -312,7 +312,7 @@ Firebase Functions | libfirebase_functions.a | | Firebase/Auth Cocoapod (10.12.0) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (10.12.0) +| | Firebase/CoreOnly Cocoapod (10.12.0) | | Google-Mobile-Ads-SDK Cocoapod (10.8.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a From 3cd0dcade439d4856e507aa736ad212bdfcb1027 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Thu, 20 Jul 2023 13:44:33 -0700 Subject: [PATCH 02/14] Add stub workflow for updating feature branches. --- .github/workflows/update-feature-branches.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/workflows/update-feature-branches.yml diff --git a/.github/workflows/update-feature-branches.yml b/.github/workflows/update-feature-branches.yml new file mode 100644 index 0000000000..167696a9a7 --- /dev/null +++ b/.github/workflows/update-feature-branches.yml @@ -0,0 +1,12 @@ +name: Update Feature Branches +on: + workflow_dispatch: + inputs: + +jobs: + no_op: + name: no-op + runs-on: ubuntu-20.04 + steps: + - name: noop + run: true From 00eeac87f7728d8f67bc30128a1414e1601521d1 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Sun, 23 Jul 2023 11:36:55 -0700 Subject: [PATCH 03/14] Add script to merge main into all active feature branches on a regular schedule. (#1394) * Add workflow for automatically updating feature branches weekly. * Corrected filename, and added inputs. * Remove trailing spaces. * Fix workflow. * Fix workflow name. * Fix syntax. * Fix syntax. * List remote branches instead. * Clean up script. * Untab. * Add branch list for debugging. * Untab. * Specify remote branches. * Skip second stage if no first. * Typo * Error. * List all branches. * Fix logic. * Fix spacing. * Fix output * Fix parameters. * Fix merge to use origin. * Remove debug echos. * Add git config. * Fix PR creation. * Fix PR creation. * Fix automatic push. --- .github/workflows/update-feature-branches.yml | 123 +++++++++++++++++- 1 file changed, 119 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update-feature-branches.yml b/.github/workflows/update-feature-branches.yml index 167696a9a7..5e180d2611 100644 --- a/.github/workflows/update-feature-branches.yml +++ b/.github/workflows/update-feature-branches.yml @@ -2,11 +2,126 @@ name: Update Feature Branches on: workflow_dispatch: inputs: + branch_patterns: + description: 'Space-separated list of feature branch patterns' + default: 'feature_branch/*' + required: true + main_branch: + description: 'Main branch to merge' + default: 'main' + required: true + schedule: + - cron: "0 16 * * 1" # Mondays, 4pm UTC = 9am PST / 10am PDT + +env: + defaultBranchPattern: "feature_branch/*" + defaultMainBranch: "main" + triggerTestsLabel: "tests-requested: quick" jobs: - no_op: - name: no-op + list_feature_branches: + name: list-feature-branches + runs-on: ubuntu-20.04 + outputs: + branch_list: ${{ steps.get-branches.outputs.branch_list }} + steps: + - name: Check out repo (if needed) + if: ${{ github.event.inputs.branch_list == '' }} + uses: actions/checkout@v3 + + - name: Get list of feature branches + id: get-branches + run: | + branch_pattern='origin/${{ env.defaultBranchPattern }}' + if [[ -n '${{ github.event.inputs.branch_patterns }}' ]]; then + branch_pattern=origin/$(echo '${{ github.event.inputs.branch_patterns }}' | sed 's| | origin/|g') + fi + git remote update + echo "Branch pattern: ${branch_pattern}" + branch_list=$(git branch --list --all "${branch_pattern}") + if [[ -n ${branch_list} ]]; then + # If there's at least one entry, process the list. + echo "Remote branch list: ${branch_list}" + # Remove remotes/origin/ from each branch. + branch_list=$(echo ${branch_list} | sed 's| remotes/origin/| |g' | sed 's|^remotes/origin/||') + # Change spaces to commas. + branch_list=$(echo ${branch_list} | sed 's/ /,/g') + # Add quotes around each branch name. + branch_list='"'$(echo ${branch_list} | sed 's/,/","/g')'"' + fi + echo "::warning ::Branch list: [${branch_list}]" + echo "branch_list=[${branch_list}]" >> $GITHUB_OUTPUT + + create_merge_prs: + name: create-merge-pr-${{ matrix.branch_name }} + needs: [ list_feature_branches ] runs-on: ubuntu-20.04 + if: ${{ needs.list_feature_branches.outputs.branch_list != '[]' }} + strategy: + fail-fast: false + matrix: + branch_name: ${{ fromJson(needs.list_feature_branches.outputs.branch_list) }} steps: - - name: noop - run: true + - name: Get token for firebase-workflow-trigger + uses: tibdex/github-app-token@v1 + id: generate-token + with: + app_id: ${{ secrets.WORKFLOW_TRIGGER_APP_ID }} + private_key: ${{ secrets.WORKFLOW_TRIGGER_APP_PRIVATE_KEY }} + + - name: Setup python + uses: actions/setup-python@v4 + with: + python-version: 3.7 + + - uses: actions/checkout@v3 + with: + ref: ${{ matrix.branch_name }} + fetch-depth: 0 + submodules: false + + - name: Install prerequisites + run: | + python scripts/gha/install_prereqs_desktop.py + python -m pip install requests + + - name: Create merge PR + id: create-pr + run: | + git config user.email "firebase-workflow-trigger-bot@google.com" + git config user.name "firebase-workflow-trigger-bot" + git config core.commentChar "%" # so we can use # in git commit messages + + main_branch='${{ env.defaultMainBranch }}' + if [[ -n '${{ github.event.inputs.main_branch }}' ]]; then + main_branch='${{ github.event.inputs.main_branch }}' + fi + # Attempt a merge, then check if any files changed. + git merge --no-commit --no-ff "origin/${main_branch}" || true + if git diff --quiet ${{ matrix.branch_name }}; then + # No merge necessary. + echo "::warning ::No merge needed for ${{ matrix.branch_name }}, won't create pull request." + echo "created_pr_number=0" >> $GITHUB_OUTPUT + exit 0 + fi + + # Undo the actual merge. Let the PR creation handle it. + git merge --abort + + date_str=$(date "+%b %d, %Y") + + pr_title="Automatic merge of ${main_branch} into ${{ matrix.branch_name }} - ${date_str}" + pr_body="Automatic merge of ${main_branch} into ${{ matrix.branch_name }}. + + > Created on ${date_str} by [${{github.workflow}} workflow]($GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID). + " + pr_number=$(python scripts/gha/create_pull_request.py --token ${{ steps.generate-token.outputs.token }} --base "${{ matrix.branch_name }}" --head "${main_branch}" --title "${pr_title}" --body "${pr_body}") + echo "created_pr_number=${pr_number}" >> $GITHUB_OUTPUT + + - name: Set test trigger label. + uses: actions-ecosystem/action-add-labels@v1 + if: ${{ steps.create-pr.outputs.created_pr_number }} + with: + github_token: ${{ steps.generate-token.outputs.token }} + number: ${{ steps.create-pr.outputs.created_pr_number }} + labels: "${{ env.triggerTestsLabel }}" From b5e5477d74117f94dbcf09aa6278f8ab70c57512 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Mon, 24 Jul 2023 13:45:48 -0700 Subject: [PATCH 04/14] Increase retry. (#1402) --- scripts/gha/integration_testing/ftl_gha_validator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/gha/integration_testing/ftl_gha_validator.py b/scripts/gha/integration_testing/ftl_gha_validator.py index 4350738245..58119d2315 100644 --- a/scripts/gha/integration_testing/ftl_gha_validator.py +++ b/scripts/gha/integration_testing/ftl_gha_validator.py @@ -74,7 +74,7 @@ def _get_testapp_log_text_from_gcs(gcs_path): logging.error("Unexpected error reading GCS log:\n%s", e) return None -@retry(subprocess.CalledProcessError, tries=3, delay=10) +@retry(subprocess.CalledProcessError, tries=10, delay=5, backoff=1.5) def _gcs_list_dir(gcs_path): """Recursively returns a list of contents for a directory on GCS.""" args = [GSUTIL, "ls", "-r", gcs_path] @@ -83,7 +83,7 @@ def _gcs_list_dir(gcs_path): return result.stdout.splitlines() -@retry(subprocess.CalledProcessError, tries=3, delay=10) +@retry(subprocess.CalledProcessError, tries=10, delay=5, backoff=1.5) def _gcs_read_file(gcs_path): """Extracts the contents of a file on GCS.""" args = [GSUTIL, "cat", gcs_path] From b9a53cf29fefe8e351e8b6b53a238a8365aa8993 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Mon, 24 Jul 2023 17:57:11 -0700 Subject: [PATCH 05/14] Add Firestore test history report (#1403) * Add --firestore flag to report Firestore history. * Add Firestore report to nightly cron job. * Remove multiline commands. * Revert "Remove multiline commands." This reverts commit 6393ae98f767c45f0a402fc9492bf6cc2ce55885. * Fix tabbing. * Fix packaging test detection for Firestore. --- .github/workflows/build-report.yml | 29 ++++++++++++++++++++++++++--- scripts/gha/report_build_status.py | 21 +++++++++++++++------ 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-report.yml b/.github/workflows/build-report.yml index 9776e62f65..31ed97d141 100644 --- a/.github/workflows/build-report.yml +++ b/.github/workflows/build-report.yml @@ -13,8 +13,16 @@ env: jobs: generate-report: + strategy: + fail-fast: false + matrix: + test_set: [ general, firestore ] runs-on: ubuntu-20.04 + name: generate-report-${{ matrix.test_set }} steps: + - name: Pause 5 minutes to offset Firestore fetches. + if: ${{ matrix.test_set == 'firestore' }} + run: sleep 300 - name: Setup python uses: actions/setup-python@v4 with: @@ -36,14 +44,24 @@ jobs: timeout_minutes: 20 max_attempts: 3 shell: bash - command: python3 scripts/gha/report_build_status.py --token ${{ github.token }} --days ${{ env.numDays }} --write_cache build_status_short.cache + command: | + extra_flags= + if [[ "${{ matrix.test_set }}" == "firestore" ]]; then + extra_flags=--firestore + fi + python3 scripts/gha/report_build_status.py --token ${{ github.token }} --days ${{ env.numDays }} --write_cache build_status_short.cache ${extra_flags} - name: Fetch extended GitHub jobs (with retry) uses: nick-invision/retry@v2 with: timeout_minutes: 80 max_attempts: 3 shell: bash - command: python3 scripts/gha/report_build_status.py --token ${{ github.token }} --days ${{ env.numDaysExtended }} --write_cache build_status.cache + command: | + extra_flags= + if [[ "${{ matrix.test_set }}" == "firestore" ]]; then + extra_flags=--firestore + fi + python3 scripts/gha/report_build_status.py --token ${{ github.token }} --days ${{ env.numDaysExtended }} --write_cache build_status.cache ${extra_flags} - name: Generate report files run: | python3 scripts/gha/report_build_status.py --token ${{ github.token }} --days ${{ env.numDays }} --output_markdown --read_cache build_status_short.cache > report_short.md @@ -88,4 +106,9 @@ jobs: timeout_minutes: 5 max_attempts: 3 shell: bash - command: python3 scripts/gha/update_issue_comment.py --token ${{ github.token }} --issue_title '[C++] Nightly Integration Testing Report' --start_tag build-dashboard-comment-start --end_tag build-dashboard-comment-end < comment.md + command: | + issue_title='[C++] Nightly Integration Testing Report' + if [[ "${{ matrix.test_set }}" == "firestore" ]]; then + issue_title='[C++] Nightly Integration Testing Report for Firestore' + fi + python3 scripts/gha/update_issue_comment.py --token ${{ github.token }} --issue_title "${issue_title}" --start_tag build-dashboard-comment-start --end_tag build-dashboard-comment-end < comment.md diff --git a/scripts/gha/report_build_status.py b/scripts/gha/report_build_status.py index 1bc1b5cab4..76b6b974df 100644 --- a/scripts/gha/report_build_status.py +++ b/scripts/gha/report_build_status.py @@ -112,6 +112,10 @@ "summary_include_crashes", True, "Whether to include CRASH/TIMEOUT in the test summary.") +flags.DEFINE_bool( + "firestore", False, + "Report on Firestore tests rather than on general tests.") + _WORKFLOW_TESTS = 'integration_tests.yml' _WORKFLOW_PACKAGING = 'cpp-packaging.yml' _TRIGGER_USER = 'firebase-workflow-trigger[bot]' @@ -380,11 +384,10 @@ def main(argv): if run['status'] != 'completed': continue if run['day'] < start_date or run['day'] > end_date: continue run['duration'] = dateutil.parser.parse(run['updated_at'], ignoretz=True) - run['date'] - if general_test_time in str(run['date']): + compare_test_time = firestore_test_time if FLAGS.firestore else general_test_time + if compare_test_time in str(run['date']): source_tests[day] = run all_days.add(day) - # elif firestore_test_time in str(run['date']): - # firestore_tests[day] = run workflow_id = _WORKFLOW_PACKAGING all_runs = firebase_github.list_workflow_runs(FLAGS.token, workflow_id, _BRANCH, 'schedule', _LIMIT) @@ -426,9 +429,15 @@ def main(argv): with progress.bar.Bar('Downloading triggered workflow logs...', max=len(package_tests_all)) as bar: for run in package_tests_all: day = str(run['date'].date()) - if day in package_tests and int(package_tests[day]['id']) < int(run['id']): - bar.next() - continue + if day in package_tests: + # Packaging triggers two tests. For Firestore, we want the larger run ID (the second run triggered). + if FLAGS.firestore and int(package_tests[day]['id']) > int(run['id']): + bar.next() + continue + # For general tests we want the smaller run ID (the first run triggered). + if not FLAGS.firestore and int(package_tests[day]['id']) < int(run['id']): + bar.next() + continue packaging_run = 0 From daf92c8f885f1cb798e376ce6efbeb64c1b7cf70 Mon Sep 17 00:00:00 2001 From: Tom Andersen Date: Fri, 28 Jul 2023 14:30:53 -0400 Subject: [PATCH 06/14] Revert "OR Query Implementation (#1335)" (#1399) This reverts commit 11332d48d28c52352f5e40640831934ff6921e4e. --- app/CMakeLists.txt | 1 - firestore/CMakeLists.txt | 9 - .../integration_test_internal/CMakeLists.txt | 2 - .../project.pbxproj | 24 - .../src/aggregate_count_test.cc | 16 + .../src/aggregate_query_test.cc | 15 - .../src/filter_test.cc | 550 ------------------ firestore/src/android/filter_android.cc | 209 ------- firestore/src/android/filter_android.h | 89 --- firestore/src/android/query_android.cc | 12 +- firestore/src/android/query_android.h | 8 - firestore/src/common/filter.cc | 174 ------ firestore/src/common/query.cc | 11 - firestore/src/common/type_mapping.h | 6 - firestore/src/include/firebase/firestore.h | 1 - .../include/firebase/firestore/field_path.h | 1 - .../src/include/firebase/firestore/filter.h | 411 ------------- .../src/include/firebase/firestore/query.h | 23 +- firestore/src/main/composite_filter_main.cc | 70 --- firestore/src/main/composite_filter_main.h | 66 --- firestore/src/main/converter_main.h | 10 - firestore/src/main/filter_main.cc | 130 ----- firestore/src/main/filter_main.h | 105 ---- firestore/src/main/query_main.cc | 28 +- firestore/src/main/query_main.h | 2 - firestore/src/main/unary_filter_main.cc | 70 --- firestore/src/main/unary_filter_main.h | 70 --- release_build_files/readme.md | 5 - 28 files changed, 42 insertions(+), 2076 deletions(-) delete mode 100644 firestore/integration_test_internal/src/filter_test.cc delete mode 100644 firestore/src/android/filter_android.cc delete mode 100644 firestore/src/android/filter_android.h delete mode 100644 firestore/src/common/filter.cc delete mode 100644 firestore/src/include/firebase/firestore/filter.h delete mode 100644 firestore/src/main/composite_filter_main.cc delete mode 100644 firestore/src/main/composite_filter_main.h delete mode 100644 firestore/src/main/filter_main.cc delete mode 100644 firestore/src/main/filter_main.h delete mode 100644 firestore/src/main/unary_filter_main.cc delete mode 100644 firestore/src/main/unary_filter_main.h diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 8565b58141..b008b7de78 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -518,7 +518,6 @@ if (IOS) ${FIREBASE_SOURCE_DIR}/firestore/src/include/firebase/firestore/document_snapshot.h ${FIREBASE_SOURCE_DIR}/firestore/src/include/firebase/firestore/field_path.h ${FIREBASE_SOURCE_DIR}/firestore/src/include/firebase/firestore/field_value.h - ${FIREBASE_SOURCE_DIR}/firestore/src/include/firebase/firestore/filter.h ${FIREBASE_SOURCE_DIR}/firestore/src/include/firebase/firestore/listener_registration.h ${FIREBASE_SOURCE_DIR}/firestore/src/include/firebase/firestore/load_bundle_task_progress.h ${FIREBASE_SOURCE_DIR}/firestore/src/include/firebase/firestore/map_field_value.h diff --git a/firestore/CMakeLists.txt b/firestore/CMakeLists.txt index e3a31f3eb8..0cea8d1435 100644 --- a/firestore/CMakeLists.txt +++ b/firestore/CMakeLists.txt @@ -31,7 +31,6 @@ set(common_SRCS src/common/document_snapshot.cc src/common/exception_common.cc src/common/exception_common.h - src/common/filter.cc src/common/field_path.cc src/common/field_value.cc src/common/firestore.cc @@ -98,8 +97,6 @@ set(android_SRCS src/android/field_path_portable.h src/android/field_value_android.cc src/android/field_value_android.h - src/android/filter_android.cc - src/android/filter_android.h src/android/firestore_android.cc src/android/firestore_android.h src/android/firestore_exceptions_android.h @@ -204,8 +201,6 @@ set(main_SRCS src/main/aggregate_query_snapshot_main.h src/main/collection_reference_main.cc src/main/collection_reference_main.h - src/main/composite_filter_main.cc - src/main/composite_filter_main.h src/main/converter_main.h src/main/document_change_main.cc src/main/document_change_main.h @@ -213,8 +208,6 @@ set(main_SRCS src/main/document_reference_main.h src/main/document_snapshot_main.cc src/main/document_snapshot_main.h - src/main/filter_main.cc - src/main/filter_main.h src/main/field_value_main.cc src/main/field_value_main.h src/main/firestore_main.cc @@ -234,8 +227,6 @@ set(main_SRCS src/main/transaction_main.h src/main/user_data_converter_main.cc src/main/user_data_converter_main.h - src/main/unary_filter_main.cc - src/main/unary_filter_main.h src/main/util_main.h src/main/write_batch_main.cc src/main/write_batch_main.h) diff --git a/firestore/integration_test_internal/CMakeLists.txt b/firestore/integration_test_internal/CMakeLists.txt index 8e651e75cd..791500961a 100644 --- a/firestore/integration_test_internal/CMakeLists.txt +++ b/firestore/integration_test_internal/CMakeLists.txt @@ -91,7 +91,6 @@ set(FIREBASE_INTEGRATION_TEST_PORTABLE_TEST_SRCS # public API are performed. src/integration_test.cc # Internal tests below. - src/aggregate_count_test.cc src/aggregate_query_snapshot_test.cc src/aggregate_query_test.cc src/bundle_test.cc @@ -100,7 +99,6 @@ set(FIREBASE_INTEGRATION_TEST_PORTABLE_TEST_SRCS src/document_change_test.cc src/document_reference_test.cc src/document_snapshot_test.cc - src/filter_test.cc src/field_value_test.cc src/fields_test.cc src/firestore_test.cc diff --git a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj index 415b4bcff8..4fc6d0ca75 100644 --- a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj @@ -21,14 +21,6 @@ 12CCF1E928FDBD9F00C24941 /* set_options_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 12CCF1DF28FDBD9F00C24941 /* set_options_test.cc */; }; 12D513142684C8C200A83FAA /* bundle_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 12D513132684C8C200A83FAA /* bundle_test.cc */; }; 12D5131A2684C8D100A83FAA /* bundle_builder.cc in Sources */ = {isa = PBXBuildFile; fileRef = 12D513182684C8D100A83FAA /* bundle_builder.cc */; }; - 1BAFACA32A449C2B00834979 /* aggregate_query_snapshot_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA02A449C2B00834979 /* aggregate_query_snapshot_test.cc */; }; - 1BAFACA42A449C2B00834979 /* aggregate_query_snapshot_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA02A449C2B00834979 /* aggregate_query_snapshot_test.cc */; }; - 1BAFACA52A449C2B00834979 /* aggregate_count_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA12A449C2B00834979 /* aggregate_count_test.cc */; }; - 1BAFACA62A449C2B00834979 /* aggregate_count_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA12A449C2B00834979 /* aggregate_count_test.cc */; }; - 1BAFACA72A449C2B00834979 /* aggregate_query_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA22A449C2B00834979 /* aggregate_query_test.cc */; }; - 1BAFACA82A449C2B00834979 /* aggregate_query_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA22A449C2B00834979 /* aggregate_query_test.cc */; }; - 1BAFACAA2A449CBD00834979 /* filter_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA92A449CBD00834979 /* filter_test.cc */; }; - 1BAFACAB2A449CBD00834979 /* filter_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1BAFACA92A449CBD00834979 /* filter_test.cc */; }; 520BC0391C869159008CFBC3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 520BC0381C869159008CFBC3 /* GoogleService-Info.plist */; }; 5270BB448DF5ECE860FDD68B /* firebase_firestore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAFAF9474EC412ADCC65F2CC /* firebase_firestore.framework */; }; 529226D61C85F68000C89379 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 529226D51C85F68000C89379 /* Foundation.framework */; }; @@ -131,10 +123,6 @@ 12D513182684C8D100A83FAA /* bundle_builder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bundle_builder.cc; path = src/util/bundle_builder.cc; sourceTree = ""; }; 12D513192684C8D100A83FAA /* bundle_builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bundle_builder.h; path = src/util/bundle_builder.h; sourceTree = ""; }; 1B3D64B35A22073C76B376D5 /* libPods-integration_test_tvos.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-integration_test_tvos.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1BAFACA02A449C2B00834979 /* aggregate_query_snapshot_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggregate_query_snapshot_test.cc; path = src/aggregate_query_snapshot_test.cc; sourceTree = ""; }; - 1BAFACA12A449C2B00834979 /* aggregate_count_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggregate_count_test.cc; path = src/aggregate_count_test.cc; sourceTree = ""; }; - 1BAFACA22A449C2B00834979 /* aggregate_query_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggregate_query_test.cc; path = src/aggregate_query_test.cc; sourceTree = ""; }; - 1BAFACA92A449CBD00834979 /* filter_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = filter_test.cc; path = src/filter_test.cc; sourceTree = ""; }; 3DE393E827F88B06CD3C39CD /* Pods-integration_test_tvos.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-integration_test_tvos.release.xcconfig"; path = "Target Support Files/Pods-integration_test_tvos/Pods-integration_test_tvos.release.xcconfig"; sourceTree = ""; }; 4AAFA3E3DA9641C2E3C46C9D /* Pods_integration_test.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_integration_test.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 520BC0381C869159008CFBC3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; @@ -293,10 +281,6 @@ 5292271D1C85FB5500C89379 /* src */ = { isa = PBXGroup; children = ( - 1BAFACA92A449CBD00834979 /* filter_test.cc */, - 1BAFACA12A449C2B00834979 /* aggregate_count_test.cc */, - 1BAFACA02A449C2B00834979 /* aggregate_query_snapshot_test.cc */, - 1BAFACA22A449C2B00834979 /* aggregate_query_test.cc */, 12CCF1DF28FDBD9F00C24941 /* set_options_test.cc */, 12CCF1DB28FDBD9E00C24941 /* settings_test.cc */, 12CCF1DC28FDBD9F00C24941 /* source_test.cc */, @@ -592,14 +576,12 @@ D62CCBC022F367140099BE9F /* gmock-all.cc in Sources */, D61CFBC126091C3B0035CB2A /* integration_test.cc in Sources */, D6AAAD532606C22D0025C53B /* includes_test.cc in Sources */, - 1BAFACA52A449C2B00834979 /* aggregate_count_test.cc in Sources */, D6AAAD502606C22D0025C53B /* numeric_transforms_test.cc in Sources */, D6ED33BE2606CD890058CBF9 /* integration_test_util.cc in Sources */, D6C179EA22CB322900C2651A /* ios_firebase_test_framework.mm in Sources */, 12CCF1E228FDBD9F00C24941 /* source_test.cc in Sources */, D6AAAD4C2606C22D0025C53B /* server_timestamp_test.cc in Sources */, D6AAAD4E2606C22D0025C53B /* firestore_test.cc in Sources */, - 1BAFACAA2A449CBD00834979 /* filter_test.cc in Sources */, D6AAAD452606C22D0025C53B /* document_change_test.cc in Sources */, D6AAAD472606C22D0025C53B /* document_snapshot_test.cc in Sources */, D6C179E922CB322900C2651A /* ios_app_framework.mm in Sources */, @@ -609,9 +591,7 @@ EDEEC7632800CD0000EFBAAF /* leveldb_snappy_test.cc in Sources */, 12CCF1E828FDBD9F00C24941 /* set_options_test.cc in Sources */, D6AAAD562606C22D0025C53B /* query_network_test.cc in Sources */, - 1BAFACA72A449C2B00834979 /* aggregate_query_test.cc in Sources */, D6AAAD552606C22D0025C53B /* listener_registration_test.cc in Sources */, - 1BAFACA32A449C2B00834979 /* aggregate_query_snapshot_test.cc in Sources */, 12D5131A2684C8D100A83FAA /* bundle_builder.cc in Sources */, D6AAAD4A2606C22D0025C53B /* fields_test.cc in Sources */, D6AAAD462606C22D0025C53B /* query_test.cc in Sources */, @@ -630,8 +610,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1BAFACAB2A449CBD00834979 /* filter_test.cc in Sources */, - 1BAFACA62A449C2B00834979 /* aggregate_count_test.cc in Sources */, BC1D6850267B00EB005DC2DA /* app_framework.cc in Sources */, BC1D6853267B00EB005DC2DA /* transaction_extra_test.cc in Sources */, BC1D683E267B00EB005DC2DA /* integration_test_util.cc in Sources */, @@ -645,7 +623,6 @@ BC1D6848267B00EB005DC2DA /* sanity_test.cc in Sources */, 12CCF1E728FDBD9F00C24941 /* write_batch_test.cc in Sources */, 12CCF1E128FDBD9F00C24941 /* settings_test.cc in Sources */, - 1BAFACA82A449C2B00834979 /* aggregate_query_test.cc in Sources */, BC1D6856267B00EE005DC2DA /* ios_app_framework.mm in Sources */, BC1D6843267B00EB005DC2DA /* numeric_transforms_test.cc in Sources */, BC1D6844267B00EB005DC2DA /* array_transform_test.cc in Sources */, @@ -655,7 +632,6 @@ BC1D684E267B00EB005DC2DA /* includes_test.cc in Sources */, BC1D684C267B00EB005DC2DA /* document_change_test.cc in Sources */, BC1D6851267B00EB005DC2DA /* firestore_integration_test.cc in Sources */, - 1BAFACA42A449C2B00834979 /* aggregate_query_snapshot_test.cc in Sources */, BC1D6838267B00EB005DC2DA /* future_test_util.cc in Sources */, 12CCF1E528FDBD9F00C24941 /* validation_test.cc in Sources */, BC1D6839267B00EB005DC2DA /* type_test.cc in Sources */, diff --git a/firestore/integration_test_internal/src/aggregate_count_test.cc b/firestore/integration_test_internal/src/aggregate_count_test.cc index 7f3f462a1f..dc58961fc3 100644 --- a/firestore/integration_test_internal/src/aggregate_count_test.cc +++ b/firestore/integration_test_internal/src/aggregate_count_test.cc @@ -28,9 +28,15 @@ #include "firestore_integration_test.h" #include "util/event_accumulator.h" +#if defined(__ANDROID__) +#include "firestore/src/android/query_android.h" +#include "firestore/src/common/wrapper_assertions.h" +#endif // defined(__ANDROID__) + #include "Firestore/core/src/util/firestore_exceptions.h" #include "firebase/firestore/firestore_errors.h" #include "firebase_test_framework.h" +#include "gmock/gmock.h" #include "gtest/gtest.h" namespace firebase { @@ -751,5 +757,15 @@ TEST_F(AggregateCountTest, EXPECT_EQ(aggregate_query2, aggregate_snapshot2.query()); } +#if defined(__ANDROID__) +TEST(QueryTestAndroidStub, Construction) { + testutil::AssertWrapperConstructionContract(); +} + +TEST(QueryTestAndroidStub, Assignment) { + testutil::AssertWrapperAssignmentContract(); +} +#endif // defined(__ANDROID__) + } // namespace firestore } // namespace firebase diff --git a/firestore/integration_test_internal/src/aggregate_query_test.cc b/firestore/integration_test_internal/src/aggregate_query_test.cc index 4810e5e96f..4a52be9790 100644 --- a/firestore/integration_test_internal/src/aggregate_query_test.cc +++ b/firestore/integration_test_internal/src/aggregate_query_test.cc @@ -17,11 +17,6 @@ #include "firebase/firestore.h" #include "firestore_integration_test.h" -#if defined(__ANDROID__) -#include "firestore/src/android/aggregate_query_android.h" -#include "firestore/src/common/wrapper_assertions.h" -#endif // defined(__ANDROID__) - #include "gtest/gtest.h" namespace firebase { @@ -337,16 +332,6 @@ TEST_F(AggregateQueryTest, TestHashCode) { AggregateQueryHash(query1.Count())); } -#if defined(__ANDROID__) -TEST(QueryTestAndroidStub, Construction) { - testutil::AssertWrapperConstructionContract(); -} - -TEST(QueryTestAndroidStub, Assignment) { - testutil::AssertWrapperAssignmentContract(); -} -#endif // defined(__ANDROID__) - } // namespace } // namespace firestore } // namespace firebase diff --git a/firestore/integration_test_internal/src/filter_test.cc b/firestore/integration_test_internal/src/filter_test.cc deleted file mode 100644 index e3806943d0..0000000000 --- a/firestore/integration_test_internal/src/filter_test.cc +++ /dev/null @@ -1,550 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "firebase/firestore.h" -#include "firestore_integration_test.h" - -namespace firebase { -namespace firestore { -namespace { - -using FilterTest = FirestoreIntegrationTest; - -TEST_F(FilterTest, CopyConstructorReturnsEqualObject) { - const Filter filter1a = Filter::EqualTo("foo", FieldValue::Integer(42)); - const Filter filter2a = Filter::ArrayContainsAny( - "bar", {FieldValue::Integer(4), FieldValue::Integer(2)}); - const Filter filter3a = Filter::And(filter1a, filter2a); - - const Filter filter1b(filter1a); - const Filter filter2b(filter2a); - const Filter filter3b(filter3a); - - EXPECT_EQ(filter1a, filter1b); - EXPECT_EQ(filter2a, filter2b); - EXPECT_EQ(filter3a, filter3b); -} - -TEST_F(FilterTest, CopyAssignementReturnsEqualObject) { - const Filter filter1 = Filter::EqualTo("foo", FieldValue::Integer(42)); - const Filter filter2 = Filter::ArrayContainsAny( - "bar", {FieldValue::Integer(4), FieldValue::Integer(2)}); - const Filter filter3 = Filter::And(filter1, filter2); - - Filter filter = Filter::And(); - - EXPECT_NE(filter, filter1); - EXPECT_NE(filter, filter2); - EXPECT_NE(filter, filter3); - - filter = filter1; - - EXPECT_EQ(filter, filter1); - EXPECT_NE(filter, filter2); - EXPECT_NE(filter, filter3); - - filter = filter2; - - EXPECT_NE(filter, filter1); - EXPECT_EQ(filter, filter2); - EXPECT_NE(filter, filter3); - - filter = filter3; - - EXPECT_NE(filter, filter1); - EXPECT_NE(filter, filter2); - EXPECT_EQ(filter, filter3); -} - -TEST_F(FilterTest, MoveConstructorReturnsEqualObject) { - Filter filter1a = Filter::EqualTo("foo", FieldValue::Integer(42)); - Filter filter2a = Filter::ArrayContainsAny( - "bar", {FieldValue::Integer(4), FieldValue::Integer(2)}); - Filter filter3a = Filter::And(filter1a, filter2a); - - Filter filter1b(std::move(filter1a)); - EXPECT_EQ(filter1b, Filter::EqualTo("foo", FieldValue::Integer(42))); - - Filter filter2b(std::move(filter2a)); - EXPECT_EQ(filter2b, - Filter::ArrayContainsAny( - "bar", {FieldValue::Integer(4), FieldValue::Integer(2)})); - - Filter filter3b(std::move(filter3a)); - EXPECT_EQ(filter3b, Filter::And(filter1b, filter2b)); -} - -TEST_F(FilterTest, MoveAssignmentReturnsEqualObject) { - Filter filter1a = Filter::EqualTo("foo", FieldValue::Integer(42)); - Filter filter2a = Filter::ArrayContainsAny( - "bar", {FieldValue::Integer(4), FieldValue::Integer(2)}); - Filter filter3a = Filter::And(filter1a, filter2a); - - Filter filter1b = std::move(filter1a); - EXPECT_EQ(filter1b, Filter::EqualTo("foo", FieldValue::Integer(42))); - - Filter filter2b = std::move(filter2a); - EXPECT_EQ(filter2b, - Filter::ArrayContainsAny( - "bar", {FieldValue::Integer(4), FieldValue::Integer(2)})); - - Filter filter3b = std::move(filter3a); - EXPECT_EQ(filter3b, Filter::And(filter1b, filter2b)); -} - -TEST_F(FilterTest, MoveAssignmentAppliedToSelfReturnsEqualObject) { - Filter filter1 = Filter::EqualTo("foo", FieldValue::Integer(42)); - Filter filter2 = Filter::ArrayContainsAny( - "bar", {FieldValue::Integer(4), FieldValue::Integer(2)}); - Filter filter3 = Filter::And(filter1, filter2); - - filter1 = std::move(filter1); - EXPECT_EQ(filter1, Filter::EqualTo("foo", FieldValue::Integer(42))); - - filter2 = std::move(filter2); - EXPECT_EQ(filter2, Filter::ArrayContainsAny("bar", {FieldValue::Integer(4), - FieldValue::Integer(2)})); - - filter3 = std::move(filter3); - EXPECT_EQ(filter3, Filter::And(filter1, filter2)); -} - -TEST_F(FilterTest, IdenticalFilterShouldBeEqual) { - FieldPath foo_path{std::vector{"foo"}}; - - Filter filter1a = Filter::ArrayContains("foo", FieldValue::Integer(42)); - Filter filter1b = Filter::ArrayContains(foo_path, FieldValue::Integer(42)); - - Filter filter2a = Filter::ArrayContainsAny("foo", {FieldValue::Integer(42)}); - Filter filter2b = - Filter::ArrayContainsAny(foo_path, {FieldValue::Integer(42)}); - - Filter filter3a = Filter::EqualTo("foo", FieldValue::Integer(42)); - Filter filter3b = Filter::EqualTo(foo_path, FieldValue::Integer(42)); - - Filter filter4a = Filter::NotEqualTo("foo", FieldValue::Integer(42)); - Filter filter4b = Filter::NotEqualTo(foo_path, FieldValue::Integer(42)); - - Filter filter5a = Filter::GreaterThan("foo", FieldValue::Integer(42)); - Filter filter5b = Filter::GreaterThan(foo_path, FieldValue::Integer(42)); - - Filter filter6a = - Filter::GreaterThanOrEqualTo("foo", FieldValue::Integer(42)); - Filter filter6b = - Filter::GreaterThanOrEqualTo(foo_path, FieldValue::Integer(42)); - - Filter filter7a = Filter::LessThan("foo", FieldValue::Integer(42)); - Filter filter7b = Filter::LessThan(foo_path, FieldValue::Integer(42)); - - Filter filter8a = Filter::LessThanOrEqualTo("foo", FieldValue::Integer(42)); - Filter filter8b = - Filter::LessThanOrEqualTo(foo_path, FieldValue::Integer(42)); - - Filter filter9a = Filter::In("foo", {FieldValue::Integer(42)}); - Filter filter9b = Filter::In(foo_path, {FieldValue::Integer(42)}); - - Filter filter10a = Filter::NotIn("foo", {FieldValue::Integer(42)}); - Filter filter10b = Filter::NotIn(foo_path, {FieldValue::Integer(42)}); - - Filter filter11a = Filter::And(filter1a, filter2a); - Filter filter11b = Filter::And(filter1b, filter2b); - - Filter filter12a = - Filter::Or(filter3a, filter4a, filter5a, filter6a, filter7a); - Filter filter12b = - Filter::Or(filter3b, filter4b, filter5b, filter6b, filter7b); - - EXPECT_TRUE(filter1a == filter1a); - EXPECT_TRUE(filter2a == filter2a); - EXPECT_TRUE(filter3a == filter3a); - EXPECT_TRUE(filter4a == filter4a); - EXPECT_TRUE(filter5a == filter5a); - EXPECT_TRUE(filter6a == filter6a); - EXPECT_TRUE(filter7a == filter7a); - EXPECT_TRUE(filter8a == filter8a); - EXPECT_TRUE(filter9a == filter9a); - EXPECT_TRUE(filter10a == filter10a); - EXPECT_TRUE(filter11a == filter11a); - EXPECT_TRUE(filter12a == filter12a); - - EXPECT_TRUE(filter1a == filter1b); - EXPECT_TRUE(filter2a == filter2b); - EXPECT_TRUE(filter3a == filter3b); - EXPECT_TRUE(filter4a == filter4b); - EXPECT_TRUE(filter5a == filter5b); - EXPECT_TRUE(filter6a == filter6b); - EXPECT_TRUE(filter7a == filter7b); - EXPECT_TRUE(filter8a == filter8b); - EXPECT_TRUE(filter9a == filter9b); - EXPECT_TRUE(filter10a == filter10b); - EXPECT_TRUE(filter11a == filter11b); - EXPECT_TRUE(filter12a == filter12b); - - EXPECT_FALSE(filter1a != filter1a); - EXPECT_FALSE(filter2a != filter2a); - EXPECT_FALSE(filter3a != filter3a); - EXPECT_FALSE(filter4a != filter4a); - EXPECT_FALSE(filter5a != filter5a); - EXPECT_FALSE(filter6a != filter6a); - EXPECT_FALSE(filter7a != filter7a); - EXPECT_FALSE(filter8a != filter8a); - EXPECT_FALSE(filter9a != filter9a); - EXPECT_FALSE(filter10a != filter10a); - EXPECT_FALSE(filter11a != filter11a); - EXPECT_FALSE(filter12a != filter12a); - - EXPECT_FALSE(filter1a != filter1b); - EXPECT_FALSE(filter2a != filter2b); - EXPECT_FALSE(filter3a != filter3b); - EXPECT_FALSE(filter4a != filter4b); - EXPECT_FALSE(filter5a != filter5b); - EXPECT_FALSE(filter6a != filter6b); - EXPECT_FALSE(filter7a != filter7b); - EXPECT_FALSE(filter8a != filter8b); - EXPECT_FALSE(filter9a != filter9b); - EXPECT_FALSE(filter10a != filter10b); - EXPECT_FALSE(filter11a != filter11b); - EXPECT_FALSE(filter12a != filter12b); - - EXPECT_TRUE(filter1a != filter2a); - EXPECT_TRUE(filter1a != filter3a); - EXPECT_TRUE(filter1a != filter4a); - EXPECT_TRUE(filter1a != filter5a); - EXPECT_TRUE(filter1a != filter6a); - EXPECT_TRUE(filter1a != filter7a); - EXPECT_TRUE(filter1a != filter8a); - EXPECT_TRUE(filter1a != filter9a); - EXPECT_TRUE(filter1a != filter10a); - EXPECT_TRUE(filter1a != filter11a); - EXPECT_TRUE(filter1a != filter12a); - EXPECT_TRUE(filter2a != filter3a); - EXPECT_TRUE(filter2a != filter4a); - EXPECT_TRUE(filter2a != filter5a); - EXPECT_TRUE(filter2a != filter6a); - EXPECT_TRUE(filter2a != filter7a); - EXPECT_TRUE(filter2a != filter8a); - EXPECT_TRUE(filter2a != filter9a); - EXPECT_TRUE(filter2a != filter10a); - EXPECT_TRUE(filter2a != filter11a); - EXPECT_TRUE(filter2a != filter12a); - EXPECT_TRUE(filter3a != filter4a); - EXPECT_TRUE(filter3a != filter5a); - EXPECT_TRUE(filter3a != filter6a); - EXPECT_TRUE(filter3a != filter7a); - EXPECT_TRUE(filter3a != filter8a); - EXPECT_TRUE(filter3a != filter9a); - EXPECT_TRUE(filter3a != filter10a); - EXPECT_TRUE(filter3a != filter11a); - EXPECT_TRUE(filter3a != filter12a); - EXPECT_TRUE(filter4a != filter5a); - EXPECT_TRUE(filter4a != filter6a); - EXPECT_TRUE(filter4a != filter7a); - EXPECT_TRUE(filter4a != filter8a); - EXPECT_TRUE(filter4a != filter9a); - EXPECT_TRUE(filter4a != filter10a); - EXPECT_TRUE(filter4a != filter11a); - EXPECT_TRUE(filter4a != filter12a); - EXPECT_TRUE(filter5a != filter6a); - EXPECT_TRUE(filter5a != filter7a); - EXPECT_TRUE(filter5a != filter8a); - EXPECT_TRUE(filter5a != filter9a); - EXPECT_TRUE(filter5a != filter10a); - EXPECT_TRUE(filter5a != filter11a); - EXPECT_TRUE(filter5a != filter12a); - EXPECT_TRUE(filter6a != filter7a); - EXPECT_TRUE(filter6a != filter8a); - EXPECT_TRUE(filter6a != filter9a); - EXPECT_TRUE(filter6a != filter10a); - EXPECT_TRUE(filter6a != filter11a); - EXPECT_TRUE(filter6a != filter12a); - EXPECT_TRUE(filter7a != filter8a); - EXPECT_TRUE(filter7a != filter9a); - EXPECT_TRUE(filter7a != filter10a); - EXPECT_TRUE(filter7a != filter11a); - EXPECT_TRUE(filter7a != filter12a); - EXPECT_TRUE(filter8a != filter9a); - EXPECT_TRUE(filter8a != filter10a); - EXPECT_TRUE(filter8a != filter11a); - EXPECT_TRUE(filter8a != filter12a); - EXPECT_TRUE(filter9a != filter10a); - EXPECT_TRUE(filter9a != filter11a); - EXPECT_TRUE(filter9a != filter12a); - EXPECT_TRUE(filter10a != filter11a); - EXPECT_TRUE(filter10a != filter12a); - EXPECT_TRUE(filter11a != filter12a); -} - -TEST_F(FilterTest, DifferentValuesAreNotEqual) { - Filter filter1a = Filter::ArrayContains("foo", FieldValue::Integer(24)); - Filter filter1b = Filter::ArrayContains("foo", FieldValue::Integer(42)); - Filter filter1c = Filter::ArrayContains("bar", FieldValue::Integer(42)); - - Filter filter2a = Filter::EqualTo("foo", FieldValue::Integer(24)); - Filter filter2b = Filter::EqualTo("foo", FieldValue::Integer(42)); - Filter filter2c = Filter::EqualTo("bar", FieldValue::Integer(42)); - - Filter filter3a = Filter::NotEqualTo("foo", FieldValue::Integer(24)); - Filter filter3b = Filter::NotEqualTo("foo", FieldValue::Integer(42)); - Filter filter3c = Filter::NotEqualTo("bar", FieldValue::Integer(42)); - - Filter filter4a = Filter::GreaterThan("foo", FieldValue::Integer(24)); - Filter filter4b = Filter::GreaterThan("foo", FieldValue::Integer(42)); - Filter filter4c = Filter::GreaterThan("bar", FieldValue::Integer(42)); - - Filter filter5a = - Filter::GreaterThanOrEqualTo("foo", FieldValue::Integer(24)); - Filter filter5b = - Filter::GreaterThanOrEqualTo("foo", FieldValue::Integer(42)); - Filter filter5c = - Filter::GreaterThanOrEqualTo("bar", FieldValue::Integer(42)); - - Filter filter6a = Filter::LessThan("foo", FieldValue::Integer(24)); - Filter filter6b = Filter::LessThan("foo", FieldValue::Integer(42)); - Filter filter6c = Filter::LessThan("bar", FieldValue::Integer(42)); - - Filter filter7a = Filter::LessThanOrEqualTo("foo", FieldValue::Integer(24)); - Filter filter7b = Filter::LessThanOrEqualTo("foo", FieldValue::Integer(42)); - Filter filter7c = Filter::LessThanOrEqualTo("bar", FieldValue::Integer(42)); - - EXPECT_FALSE(filter1a == filter1b); - EXPECT_FALSE(filter1b == filter1c); - EXPECT_FALSE(filter2a == filter2b); - EXPECT_FALSE(filter2b == filter2c); - EXPECT_FALSE(filter3a == filter3b); - EXPECT_FALSE(filter3b == filter3c); - EXPECT_FALSE(filter4a == filter4b); - EXPECT_FALSE(filter4b == filter4c); - EXPECT_FALSE(filter5a == filter5b); - EXPECT_FALSE(filter5b == filter5c); - EXPECT_FALSE(filter6a == filter6b); - EXPECT_FALSE(filter6b == filter6c); - EXPECT_FALSE(filter7a == filter7b); - EXPECT_FALSE(filter7b == filter7c); - - EXPECT_TRUE(filter1a != filter1b); - EXPECT_TRUE(filter1b != filter1c); - EXPECT_TRUE(filter2a != filter2b); - EXPECT_TRUE(filter2b != filter2c); - EXPECT_TRUE(filter3a != filter3b); - EXPECT_TRUE(filter3b != filter3c); - EXPECT_TRUE(filter4a != filter4b); - EXPECT_TRUE(filter4b != filter4c); - EXPECT_TRUE(filter5a != filter5b); - EXPECT_TRUE(filter5b != filter5c); - EXPECT_TRUE(filter6a != filter6b); - EXPECT_TRUE(filter6b != filter6c); - EXPECT_TRUE(filter7a != filter7b); - EXPECT_TRUE(filter7b != filter7c); -} - -TEST_F(FilterTest, CompositesWithOneFilterAreTheSameAsFilter) { - Filter filter1 = Filter::EqualTo("foo", FieldValue::Integer(42)); - Filter filter2 = Filter::Or(filter1); - Filter filter3 = Filter::And(filter1); - - EXPECT_TRUE(filter1 == filter2); - EXPECT_TRUE(filter1 == filter3); - - EXPECT_FALSE(filter1 != filter2); - EXPECT_FALSE(filter1 != filter3); -} - -TEST_F(FilterTest, EmptyCompositeIsIgnoredByCompositesAndQueries) { - Filter filter1 = Filter::And(); - Filter filter2 = Filter::And(Filter::And(), Filter::And()); - Filter filter3 = Filter::And(Filter::Or(), Filter::Or()); - Filter filter4 = Filter::Or(); - Filter filter5 = Filter::Or(Filter::Or(), Filter::Or()); - Filter filter6 = Filter::Or(Filter::And(), Filter::And()); - - EXPECT_EQ(filter1, filter2); - EXPECT_EQ(filter1, filter3); - EXPECT_EQ(filter4, filter5); - EXPECT_EQ(filter4, filter6); - - CollectionReference collection = Collection(); - - Query query1 = collection.Where(filter1); - Query query2 = collection.Where(filter2); - Query query3 = collection.Where(filter3); - Query query4 = collection.Where(filter4); - Query query5 = collection.Where(filter5); - Query query6 = collection.Where(filter6); - - EXPECT_EQ(collection, query1); - EXPECT_EQ(collection, query2); - EXPECT_EQ(collection, query3); - EXPECT_EQ(collection, query4); - EXPECT_EQ(collection, query5); - EXPECT_EQ(collection, query6); -} - -TEST_F(FilterTest, CompositeComparison) { - Filter filter1 = Filter::ArrayContains("foo", FieldValue::Integer(42)); - Filter filter2 = Filter::EqualTo("foo", FieldValue::Integer(42)); - Filter filter3 = Filter::NotEqualTo("foo", FieldValue::Integer(42)); - Filter filter4 = Filter::GreaterThan("foo", FieldValue::Integer(42)); - - Filter and1 = Filter::And(filter1); - Filter and2 = Filter::And(filter1, filter2); - Filter and3 = Filter::And(filter1, filter2, filter3); - Filter and4 = Filter::And(filter1, filter2, filter3, filter4); - - Filter or1 = Filter::Or(filter1); - Filter or2 = Filter::Or(filter1, filter2); - Filter or3 = Filter::Or(filter1, filter2, filter3); - Filter or4 = Filter::Or(filter1, filter2, filter3, filter4); - - EXPECT_EQ(and1, and1); - EXPECT_EQ(and2, and2); - EXPECT_EQ(and3, and3); - EXPECT_EQ(and4, and4); - - EXPECT_EQ(or1, or1); - EXPECT_EQ(or2, or2); - EXPECT_EQ(or3, or3); - EXPECT_EQ(or4, or4); - - // Is equal because single filter composite is same as filter itself. - EXPECT_EQ(and1, or1); - - EXPECT_NE(and2, or2); - EXPECT_NE(and3, or3); - EXPECT_NE(and4, or4); - - EXPECT_NE(and1, and2); - EXPECT_NE(and1, and3); - EXPECT_NE(and1, and4); - EXPECT_NE(and2, and3); - EXPECT_NE(and2, and4); - EXPECT_NE(and3, and4); - - EXPECT_NE(or1, or2); - EXPECT_NE(or1, or3); - EXPECT_NE(or1, or4); - EXPECT_NE(or2, or3); - EXPECT_NE(or2, or4); - EXPECT_NE(or3, or4); -} - -TEST_F(FilterTest, QueryWhereComposite) { - MapFieldValue doc_aaa = {{"x", FieldValue::String("a")}, - {"y", FieldValue::String("a")}, - {"z", FieldValue::String("a")}}; - MapFieldValue doc_aab = {{"x", FieldValue::String("a")}, - {"y", FieldValue::String("a")}, - {"z", FieldValue::String("b")}}; - MapFieldValue doc_aba = {{"x", FieldValue::String("a")}, - {"y", FieldValue::String("b")}, - {"z", FieldValue::String("a")}}; - MapFieldValue doc_abb = {{"x", FieldValue::String("a")}, - {"y", FieldValue::String("b")}, - {"z", FieldValue::String("b")}}; - MapFieldValue doc_baa = {{"x", FieldValue::String("b")}, - {"y", FieldValue::String("a")}, - {"z", FieldValue::String("a")}}; - MapFieldValue doc_bab = {{"x", FieldValue::String("b")}, - {"y", FieldValue::String("a")}, - {"z", FieldValue::String("b")}}; - MapFieldValue doc_bba = {{"x", FieldValue::String("b")}, - {"y", FieldValue::String("b")}, - {"z", FieldValue::String("a")}}; - MapFieldValue doc_bbb = {{"x", FieldValue::String("b")}, - {"y", FieldValue::String("b")}, - {"z", FieldValue::String("b")}}; - CollectionReference collection = Collection({{"aaa", doc_aaa}, - {"aab", doc_aab}, - {"aba", doc_aba}, - {"abb", doc_abb}, - {"baa", doc_baa}, - {"bab", doc_bab}, - {"bba", doc_bba}, - {"bbb", doc_bbb}}); - - Filter filter_xa = Filter::EqualTo("x", FieldValue::String("a")); - Filter filter_ya = Filter::EqualTo("y", FieldValue::String("a")); - Filter filter_yb = Filter::EqualTo("y", FieldValue::String("b")); - Filter filter_za = Filter::EqualTo("z", FieldValue::String("a")); - - // And(x=a) - QuerySnapshot snapshot1 = - ReadDocuments(collection.Where(Filter::And(filter_xa))); - EXPECT_EQ(std::vector({doc_aaa, doc_aab, doc_aba, doc_abb}), - QuerySnapshotToValues(snapshot1)); - - // And(x=a, y=b) - QuerySnapshot snapshot2 = - ReadDocuments(collection.Where(Filter::And(filter_xa, filter_yb))); - EXPECT_EQ(std::vector({doc_aba, doc_abb}), - QuerySnapshotToValues(snapshot2)); - - // And(Or(And(x=a)),Or(And(Or())) - QuerySnapshot snapshot3 = ReadDocuments( - collection.Where(Filter::And(Filter::Or(Filter::And(filter_xa)), - Filter::Or(Filter::And(Filter::Or()))))); - EXPECT_EQ(std::vector({doc_aaa, doc_aab, doc_aba, doc_abb}), - QuerySnapshotToValues(snapshot3)); - - // Or(x=a) - QuerySnapshot snapshot4 = - ReadDocuments(collection.Where(Filter::Or(filter_xa))); - EXPECT_EQ(std::vector({doc_aaa, doc_aab, doc_aba, doc_abb}), - QuerySnapshotToValues(snapshot4)); - - // Or(x=a, y=b) - QuerySnapshot snapshot5 = - ReadDocuments(collection.Where(Filter::Or(filter_xa, filter_yb))); - EXPECT_EQ(std::vector( - {doc_aaa, doc_aab, doc_aba, doc_abb, doc_bba, doc_bbb}), - QuerySnapshotToValues(snapshot5)); - - // Or(And(Or(x=a)),And(Or(And())) - QuerySnapshot snapshot6 = ReadDocuments( - collection.Where(Filter::Or(Filter::And(Filter::Or(filter_xa)), - Filter::And(Filter::Or(Filter::And()))))); - EXPECT_EQ(std::vector({doc_aaa, doc_aab, doc_aba, doc_abb}), - QuerySnapshotToValues(snapshot6)); - - // And(x=b, Or(y=a, And(y=b, z=a))) - QuerySnapshot snapshot7 = ReadDocuments(collection.Where(Filter::And( - filter_xa, Filter::Or(filter_ya, Filter::And(filter_yb, filter_za))))); - EXPECT_EQ(std::vector({doc_aaa, doc_aab, doc_aba}), - QuerySnapshotToValues(snapshot7)); -} - -TEST_F(FilterTest, QueryEmptyWhereComposite) { - MapFieldValue doc = {{"foo", FieldValue::String("bar")}}; - CollectionReference collection = Collection({{"x", doc}}); - - QuerySnapshot s1 = ReadDocuments(collection.Where(Filter::And())); - EXPECT_EQ(std::vector({doc}), QuerySnapshotToValues(s1)); - - QuerySnapshot s2 = - ReadDocuments(collection.Where(Filter::And(Filter::Or(), Filter::Or()))); - EXPECT_EQ(std::vector({doc}), QuerySnapshotToValues(s2)); - - QuerySnapshot s3 = ReadDocuments(collection.Where(Filter::Or())); - EXPECT_EQ(std::vector({doc}), QuerySnapshotToValues(s3)); - - QuerySnapshot s4 = - ReadDocuments(collection.Where(Filter::Or(Filter::And(), Filter::And()))); - EXPECT_EQ(std::vector({doc}), QuerySnapshotToValues(s4)); -} - -} // namespace - -} // namespace firestore -} // namespace firebase diff --git a/firestore/src/android/filter_android.cc b/firestore/src/android/filter_android.cc deleted file mode 100644 index e81cd3f926..0000000000 --- a/firestore/src/android/filter_android.cc +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -#include "firestore/src/android/filter_android.h" - -#include "firestore/src/android/converter_android.h" -#include "firestore/src/android/field_path_android.h" -#include "firestore/src/android/field_value_android.h" -#include "firestore/src/android/firestore_android.h" - -#include "firestore/src/jni/array.h" -#include "firestore/src/jni/array_list.h" -#include "firestore/src/jni/compare.h" -#include "firestore/src/jni/env.h" -#include "firestore/src/jni/loader.h" - -namespace firebase { -namespace firestore { -namespace { - -using jni::Array; -using jni::ArrayList; -using jni::Env; -using jni::Local; -using jni::Object; -using jni::StaticMethod; - -constexpr char kClassName[] = - PROGUARD_KEEP_CLASS "com/google/firebase/firestore/Filter"; -StaticMethod kEqualTo( - "equalTo", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kNotEqualTo( - "notEqualTo", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kLessThan( - "lessThan", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kLessThanOrEqualTo( - "lessThanOrEqualTo", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kGreaterThan( - "greaterThan", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kGreaterThanOrEqualTo( - "greaterThanOrEqualTo", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kArrayContains( - "arrayContains", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kArrayContainsAny( - "arrayContainsAny", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/util/List;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kIn( - "in", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/util/List;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kNotIn( - "notIn", - "(Lcom/google/firebase/firestore/FieldPath;Ljava/util/List;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kAnd("and", - "([Lcom/google/firebase/firestore/Filter;)" - "Lcom/google/firebase/firestore/Filter;"); -StaticMethod kOr("or", - "([Lcom/google/firebase/firestore/Filter;)" - "Lcom/google/firebase/firestore/Filter;"); -} // namespace - -void FilterInternal::Initialize(jni::Loader& loader) { - loader.LoadClass(kClassName, kEqualTo, kNotEqualTo, kLessThan, - kLessThanOrEqualTo, kGreaterThan, kGreaterThanOrEqualTo, - kArrayContains, kArrayContainsAny, kIn, kNotIn, kAnd, kOr); -} - -FilterInternal::FilterInternal(jni::Object&& object, bool is_empty) - : object_(object), is_empty_(is_empty) {} - -Filter FilterInternal::EqualTo(const FieldPath& field, - const FieldValue& value) { - return Where(field, kEqualTo, value); -} - -Filter FilterInternal::NotEqualTo(const FieldPath& field, - const FieldValue& value) { - return Where(field, kNotEqualTo, value); -} - -Filter FilterInternal::LessThan(const FieldPath& field, - const FieldValue& value) { - return Where(field, kLessThan, value); -} - -Filter FilterInternal::LessThanOrEqualTo(const FieldPath& field, - const FieldValue& value) { - return Where(field, kLessThanOrEqualTo, value); -} - -Filter FilterInternal::GreaterThan(const FieldPath& field, - const FieldValue& value) { - return Where(field, kGreaterThan, value); -} - -Filter FilterInternal::GreaterThanOrEqualTo(const FieldPath& field, - const FieldValue& value) { - return Where(field, kGreaterThanOrEqualTo, value); -} - -Filter FilterInternal::ArrayContains(const FieldPath& field, - const FieldValue& value) { - return Where(field, kArrayContains, value); -} - -Filter FilterInternal::ArrayContainsAny(const FieldPath& field, - const std::vector& values) { - return Where(field, kArrayContainsAny, values); -} - -Filter FilterInternal::In(const FieldPath& field, - const std::vector& values) { - return Where(field, kIn, values); -} - -Filter FilterInternal::NotIn(const FieldPath& field, - const std::vector& values) { - return Where(field, kNotIn, values); -} - -Filter FilterInternal::And(const std::vector& filters) { - return Where(kAnd, filters); -} - -Filter FilterInternal::Or(const std::vector& filters) { - return Where(kOr, filters); -} - -Env FilterInternal::GetEnv() { return FirestoreInternal::GetEnv(); } - -Filter FilterInternal::Where(const FieldPath& field, - const StaticMethod& method, - const FieldValue& value) { - Env env = GetEnv(); - Local java_field = FieldPathConverter::Create(env, field); - Object filter = - env.Call(method, java_field, FieldValueInternal::ToJava(value)); - return Filter(new FilterInternal(std::move(filter), false)); -} - -Filter FilterInternal::Where(const FieldPath& field, - const jni::StaticMethod& method, - const std::vector& values) { - Env env = GetEnv(); - size_t size = values.size(); - Local java_values = ArrayList::Create(env, size); - for (size_t i = 0; i < size; ++i) { - java_values.Add(env, FieldValueInternal::ToJava(values[i])); - } - - Local java_field = FieldPathConverter::Create(env, field); - Object filter = env.Call(method, java_field, java_values); - return Filter(new FilterInternal(std::move(filter), false)); -} - -Filter FilterInternal::Where(const StaticMethod& method, - const std::vector& filters) { - Env env = GetEnv(); - size_t size = filters.size(); - Local> java_filters = env.NewArray(size, Object::GetClass()); - bool is_empty = true; - for (int i = 0; i < size; ++i) { - FilterInternal* internal_filter = filters[i].internal_; - if (!internal_filter->IsEmpty()) { - is_empty = false; - } - java_filters.Set(env, i, internal_filter->object_); - } - Object filter = env.Call(method, java_filters); - return Filter(new FilterInternal(std::move(filter), is_empty)); -} - -bool operator==(const FilterInternal& lhs, const FilterInternal& rhs) { - return jni::EqualityCompareJni(lhs, rhs); -} - -} // namespace firestore -} // namespace firebase diff --git a/firestore/src/android/filter_android.h b/firestore/src/android/filter_android.h deleted file mode 100644 index c69984c537..0000000000 --- a/firestore/src/android/filter_android.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef FIREBASE_FIRESTORE_SRC_ANDROID_FILTER_ANDROID_H_ -#define FIREBASE_FIRESTORE_SRC_ANDROID_FILTER_ANDROID_H_ - -#include - -#include "firestore/src/android/wrapper.h" -#include "firestore/src/include/firebase/firestore/field_path.h" -#include "firestore/src/include/firebase/firestore/field_value.h" -#include "firestore/src/include/firebase/firestore/filter.h" - -namespace firebase { -namespace firestore { - -class FilterInternal final { - public: - static void Initialize(jni::Loader& loader); - - FilterInternal(jni::Object&& object, bool is_empty); - - static Filter ArrayContains(const FieldPath& field, const FieldValue& value); - static Filter ArrayContainsAny(const FieldPath& field, - const std::vector& values); - static Filter EqualTo(const FieldPath& field, const FieldValue& value); - static Filter NotEqualTo(const FieldPath& field, const FieldValue& value); - static Filter GreaterThan(const FieldPath& field, const FieldValue& value); - static Filter GreaterThanOrEqualTo(const FieldPath& field, - const FieldValue& value); - static Filter LessThan(const FieldPath& field, const FieldValue& value); - static Filter LessThanOrEqualTo(const FieldPath& field, - const FieldValue& value); - static Filter In(const FieldPath& field, - const std::vector& values); - static Filter NotIn(const FieldPath& field, - const std::vector& values); - static Filter Or(const std::vector& filters); - static Filter And(const std::vector& filters); - - const jni::Global& ToJava() const { return object_; } - - private: - friend class Filter; - friend class FirestoreInternal; - - FilterInternal* clone() { return new FilterInternal(*this); } - - bool IsEmpty() const { return is_empty_; } - - static jni::Env GetEnv(); - - jni::Global object_; - const bool is_empty_; - - // A generalized function for all WhereFoo calls. - static Filter Where(const FieldPath& field, - const jni::StaticMethod& method, - const FieldValue& value); - static Filter Where(const FieldPath& field, - const jni::StaticMethod& method, - const std::vector& values); - static Filter Where(const jni::StaticMethod& method, - const std::vector& filters); -}; - -bool operator==(const FilterInternal& lhs, const FilterInternal& rhs); - -inline bool operator!=(const FilterInternal& lhs, const FilterInternal& rhs) { - return !(lhs == rhs); -} - -} // namespace firestore -} // namespace firebase - -#endif // FIREBASE_FIRESTORE_SRC_ANDROID_FILTER_ANDROID_H_ diff --git a/firestore/src/android/query_android.cc b/firestore/src/android/query_android.cc index 436e12c0a2..27a1dd2e38 100644 --- a/firestore/src/android/query_android.cc +++ b/firestore/src/android/query_android.cc @@ -25,7 +25,6 @@ #include "firestore/src/android/event_listener_android.h" #include "firestore/src/android/field_path_android.h" #include "firestore/src/android/field_value_android.h" -#include "firestore/src/android/filter_android.h" #include "firestore/src/android/firestore_android.h" #include "firestore/src/android/lambda_event_listener.h" #include "firestore/src/android/listener_registration_android.h" @@ -56,9 +55,6 @@ constexpr char kClassName[] = PROGUARD_KEEP_CLASS "com/google/firebase/firestore/Query"; Method kCount("count", "()Lcom/google/firebase/firestore/AggregateQuery;"); -Method kWhere("where", - "(Lcom/google/firebase/firestore/Filter;)" - "Lcom/google/firebase/firestore/Query;"); Method kEqualTo( "whereEqualTo", "(Lcom/google/firebase/firestore/FieldPath;Ljava/lang/Object;)" @@ -148,7 +144,7 @@ void QueryInternal::Initialize(jni::Loader& loader) { kGreaterThan, kGreaterThanOrEqualTo, kArrayContains, kArrayContainsAny, kIn, kNotIn, kOrderBy, kLimit, kLimitToLast, kStartAtSnapshot, kStartAt, kStartAfterSnapshot, kStartAfter, kEndBeforeSnapshot, kEndBefore, - kEndAtSnapshot, kEndAt, kGet, kAddSnapshotListener, kHashCode, kWhere); + kEndAtSnapshot, kEndAt, kGet, kAddSnapshotListener, kHashCode); } Firestore* QueryInternal::firestore() { @@ -162,12 +158,6 @@ AggregateQuery QueryInternal::Count() const { return firestore_->NewAggregateQuery(env, aggregate_query); } -Query QueryInternal::Where(const firebase::firestore::Filter& filter) const { - Env env = GetEnv(); - Local query = env.Call(obj_, kWhere, filter.internal_->ToJava()); - return firestore_->NewQuery(env, query); -} - Query QueryInternal::WhereEqualTo(const FieldPath& field, const FieldValue& value) const { return Where(field, kEqualTo, value); diff --git a/firestore/src/android/query_android.h b/firestore/src/android/query_android.h index a325e561e4..abb3dea8e3 100644 --- a/firestore/src/android/query_android.h +++ b/firestore/src/android/query_android.h @@ -71,14 +71,6 @@ class QueryInternal : public Wrapper { */ virtual AggregateQuery Count() const; - /** - * @brief Creates and returns a new Query with the additional filter. - * - * @param filter The new filter to apply to the existing query. - * @return The created Query. - */ - Query Where(const Filter& filter) const; - /** * @brief Creates and returns a new Query with the additional filter that * documents must contain the specified field and the value should be equal to diff --git a/firestore/src/common/filter.cc b/firestore/src/common/filter.cc deleted file mode 100644 index 77ae208beb..0000000000 --- a/firestore/src/common/filter.cc +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "firebase/firestore/filter.h" - -#include "firestore/src/common/cleanup.h" -#include "firestore/src/common/hard_assert_common.h" - -#if defined(__ANDROID__) -#include "firestore/src/android/filter_android.h" -#else -#include "firestore/src/main/filter_main.h" -#endif // defined(__ANDROID__) - -#include "firestore/src/common/util.h" - -namespace firebase { -namespace firestore { - -Filter::Filter(const Filter& other) { internal_ = other.internal_->clone(); } - -Filter::Filter(Filter&& other) noexcept { - std::swap(internal_, other.internal_); -} - -Filter::Filter(FilterInternal* internal) : internal_(internal) { - SIMPLE_HARD_ASSERT(internal != nullptr); -} - -Filter::~Filter() { - delete internal_; - internal_ = nullptr; -} - -Filter& Filter::operator=(const Filter& other) { - if (this == &other) { - return *this; - } - delete internal_; - internal_ = other.internal_->clone(); - return *this; -} - -Filter& Filter::operator=(Filter&& other) noexcept { - if (this == &other) { - return *this; - } - delete internal_; - internal_ = other.internal_; - other.internal_ = nullptr; - return *this; -} - -Filter Filter::ArrayContains(const std::string& field, - const FieldValue& value) { - return ArrayContains(FieldPath::FromDotSeparatedString(field), value); -} - -Filter Filter::ArrayContainsAny(const std::string& field, - const std::vector& values) { - return ArrayContainsAny(FieldPath::FromDotSeparatedString(field), values); -} - -Filter Filter::EqualTo(const std::string& field, - const firebase::firestore::FieldValue& value) { - return EqualTo(FieldPath::FromDotSeparatedString(field), value); -} - -Filter Filter::NotEqualTo(const std::string& field, const FieldValue& value) { - return NotEqualTo(FieldPath::FromDotSeparatedString(field), value); -} - -Filter Filter::GreaterThan(const std::string& field, const FieldValue& value) { - return GreaterThan(FieldPath::FromDotSeparatedString(field), value); -} - -Filter Filter::GreaterThanOrEqualTo(const std::string& field, - const FieldValue& value) { - return GreaterThanOrEqualTo(FieldPath::FromDotSeparatedString(field), value); -} - -Filter Filter::LessThan(const std::string& field, const FieldValue& value) { - return LessThan(FieldPath::FromDotSeparatedString(field), value); -} - -Filter Filter::LessThanOrEqualTo(const std::string& field, - const FieldValue& value) { - return LessThanOrEqualTo(FieldPath::FromDotSeparatedString(field), value); -} - -Filter Filter::In(const std::string& field, - const std::vector& values) { - return In(FieldPath::FromDotSeparatedString(field), values); -} - -Filter Filter::NotIn(const std::string& field, - const std::vector& values) { - return NotIn(FieldPath::FromDotSeparatedString(field), values); -} - -Filter Filter::ArrayContains(const FieldPath& field, const FieldValue& value) { - return FilterInternal::ArrayContains(field, value); -} - -Filter Filter::ArrayContainsAny(const FieldPath& field, - const std::vector& values) { - return FilterInternal::ArrayContainsAny(field, values); -} - -Filter Filter::EqualTo(const FieldPath& field, const FieldValue& value) { - return FilterInternal::EqualTo(field, value); -} - -Filter Filter::NotEqualTo(const FieldPath& field, const FieldValue& value) { - return FilterInternal::NotEqualTo(field, value); -} - -Filter Filter::GreaterThan(const FieldPath& field, const FieldValue& value) { - return FilterInternal::GreaterThan(field, value); -} - -Filter Filter::GreaterThanOrEqualTo(const FieldPath& field, - const FieldValue& value) { - return FilterInternal::GreaterThanOrEqualTo(field, value); -} - -Filter Filter::LessThan(const FieldPath& field, const FieldValue& value) { - return FilterInternal::LessThan(field, value); -} - -Filter Filter::LessThanOrEqualTo(const FieldPath& field, - const FieldValue& value) { - return FilterInternal::LessThanOrEqualTo(field, value); -} - -Filter Filter::In(const FieldPath& field, - const std::vector& values) { - return FilterInternal::In(field, values); -} - -Filter Filter::NotIn(const FieldPath& field, - const std::vector& values) { - return FilterInternal::NotIn(field, values); -} - -Filter Filter::And(const std::vector& filters) { - return FilterInternal::And(filters); -} - -Filter Filter::Or(const std::vector& filters) { - return FilterInternal::Or(filters); -} - -bool operator==(const Filter& lhs, const Filter& rhs) { - return EqualityCompare(lhs.internal_, rhs.internal_); -} - -bool Filter::IsEmpty() const { return internal_->IsEmpty(); } - -} // namespace firestore -} // namespace firebase diff --git a/firestore/src/common/query.cc b/firestore/src/common/query.cc index 089fc9375f..4e12cb9041 100644 --- a/firestore/src/common/query.cc +++ b/firestore/src/common/query.cc @@ -27,7 +27,6 @@ #include "firestore/src/include/firebase/firestore/document_snapshot.h" #include "firestore/src/include/firebase/firestore/field_path.h" #include "firestore/src/include/firebase/firestore/field_value.h" -#include "firestore/src/include/firebase/firestore/filter.h" #include "firestore/src/include/firebase/firestore/listener_registration.h" #include "firestore/src/include/firebase/firestore/query_snapshot.h" #if defined(__ANDROID__) @@ -113,16 +112,6 @@ AggregateQuery Query::Count() const { return internal_->Count(); } -Query Query::Where(const Filter& filter) const { - if (!internal_) return {}; - if (filter.IsEmpty()) { - // Return the existing query if not adding any more filters (e.g. an empty - // composite filter). - return *this; - } - return internal_->Where(filter); -} - Query Query::WhereEqualTo(const std::string& field, const FieldValue& value) const { return WhereEqualTo(FieldPath::FromDotSeparatedString(field), value); diff --git a/firestore/src/common/type_mapping.h b/firestore/src/common/type_mapping.h index 5501181da3..269b92a410 100644 --- a/firestore/src/common/type_mapping.h +++ b/firestore/src/common/type_mapping.h @@ -34,8 +34,6 @@ class DocumentReference; class DocumentReferenceInternal; class DocumentSnapshot; class DocumentSnapshotInternal; -class Filter; -class FilterInternal; class FieldValue; class FieldValueInternal; class Firestore; @@ -85,10 +83,6 @@ struct InternalTypeMap { using type = DocumentSnapshotInternal; }; template <> -struct InternalTypeMap { - using type = FilterInternal; -}; -template <> struct InternalTypeMap { using type = FieldValueInternal; }; diff --git a/firestore/src/include/firebase/firestore.h b/firestore/src/include/firebase/firestore.h index c3cf04e07f..7cc0274812 100644 --- a/firestore/src/include/firebase/firestore.h +++ b/firestore/src/include/firebase/firestore.h @@ -36,7 +36,6 @@ #include "firebase/firestore/document_snapshot.h" #include "firebase/firestore/field_path.h" #include "firebase/firestore/field_value.h" -#include "firebase/firestore/filter.h" #include "firebase/firestore/firestore_errors.h" #include "firebase/firestore/geo_point.h" #include "firebase/firestore/listener_registration.h" diff --git a/firestore/src/include/firebase/firestore/field_path.h b/firestore/src/include/firebase/firestore/field_path.h index 81c8cb5739..d09dec6411 100644 --- a/firestore/src/include/firebase/firestore/field_path.h +++ b/firestore/src/include/firebase/firestore/field_path.h @@ -164,7 +164,6 @@ class FieldPath final { friend bool operator!=(const FieldPath& lhs, const FieldPath& rhs); friend struct std::hash; - friend class Filter; friend class DocumentSnapshot; // For access to `FromDotSeparatedString` friend class Query; friend class QueryInternal; diff --git a/firestore/src/include/firebase/firestore/filter.h b/firestore/src/include/firebase/firestore/filter.h deleted file mode 100644 index ff1471acc3..0000000000 --- a/firestore/src/include/firebase/firestore/filter.h +++ /dev/null @@ -1,411 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef FIREBASE_FIRESTORE_SRC_INCLUDE_FIREBASE_FIRESTORE_FILTER_H_ -#define FIREBASE_FIRESTORE_SRC_INCLUDE_FIREBASE_FIRESTORE_FILTER_H_ - -#include -#include - -#include "firebase/firestore/field_value.h" - -namespace firebase { -namespace firestore { - -class FilterInternal; - -/** - * @brief A Filter represents a restriction on one or more field values and can - * be used to refine the results of a Query. - */ -class Filter { - public: - /** - * @brief Creates a new filter for checking that the given array field - * contains the given value. - * - * @param[in] field The name of the field containing an array to search. - * @param[in] value The value that must be contained in the array. - * - * @return The newly created filter. - */ - static Filter ArrayContains(const std::string& field, - const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given array field - * contains any of the given values. - * - * @param[in] field The name of the field containing an array to search. - * @param[in] values The list of values to match. - * - * @return The newly created filter. - */ - static Filter ArrayContainsAny(const std::string& field, - const std::vector& values); - - /** - * @brief Creates a new filter for checking that the given field is equal to - * the given value. - * - * @param[in] field The name of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter EqualTo(const std::string& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is not equal - * to the given value. - * - * @param[in] field The name of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter NotEqualTo(const std::string& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is greater - * than the given value. - * - * @param[in] field The name of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter GreaterThan(const std::string& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is greater - * than or equal to the given value. - * - * @param[in] field The name of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter GreaterThanOrEqualTo(const std::string& field, - const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is less than - * the given value. - * - * @param[in] field The name of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter LessThan(const std::string& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is less than - * or equal to the given value. - * - * @param[in] field The name of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter LessThanOrEqualTo(const std::string& field, - const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field equals any of - * the given values. - * - * @param[in] field The name of the field to compare. - * @param[in] values The list of values to match. - * - * @return The newly created filter. - */ - static Filter In(const std::string& field, - const std::vector& values); - - /** - * @brief Creates a new filter for checking that the given field does not - * equal any of the given values. - * - * @param[in] field The name of the field to compare. - * @param[in] values The list of values to match. - * - * @return The newly created filter. - */ - static Filter NotIn(const std::string& field, - const std::vector& values); - - /** - * @brief Creates a new filter for checking that the given array field - * contains the given value. - * - * @param[in] field The path of the field containing an array to search. - * @param[in] value The value that must be contained in the array. - * - * @return The newly created filter. - */ - static Filter ArrayContains(const FieldPath& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given array field - * contains any of the given values. - * - * @param[in] field The path of the field containing an array to search. - * @param[in] values The list of values to match. - * - * @return The newly created filter. - */ - static Filter ArrayContainsAny(const FieldPath& field, - const std::vector& values); - - /** - * @brief Creates a new filter for checking that the given field is equal to - * the given value. - * - * @param[in] field The path of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter EqualTo(const FieldPath& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is not equal - * to the given value. - * - * @param[in] field The path of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter NotEqualTo(const FieldPath& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is greater - * than the given value. - * - * @param[in] field The path of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter GreaterThan(const FieldPath& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is greater - * than or equal to the given value. - * - * @param[in] field The path of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter GreaterThanOrEqualTo(const FieldPath& field, - const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is less than - * the given value. - * - * @param[in] field The path of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter LessThan(const FieldPath& field, const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field is less than - * or equal to the given value. - * - * @param[in] field The path of the field to compare. - * @param[in] value The value for comparison - * - * @return The newly created filter. - */ - static Filter LessThanOrEqualTo(const FieldPath& field, - const FieldValue& value); - - /** - * @brief Creates a new filter for checking that the given field equals any of - * the given values. - * - * @param[in] field The path of the field to compare. - * @param[in] values The list of values to match. - * - * @return The newly created filter. - */ - static Filter In(const FieldPath& field, - const std::vector& values); - - /** - * @brief Creates a new filter for checking that the given field does not - * equal any of the given values. - * - * @param[in] field The path of the field to compare. - * @param[in] values The list of values to match. - * - * @return The newly created filter. - */ - static Filter NotIn(const FieldPath& field, - const std::vector& values); - - /** - * @brief Creates a new filter that is a conjunction of the given filters. A - * conjunction filter includes a document if it satisfies all of the given - * filters. - * - * If no filter is given, the composite filter is a no-op, and if only one - * filter is given, the composite filter has the same behavior as the - * underlying filter. - * - * @param[in] filters The filters to perform a conjunction for. - * - * @return The newly created filter. - */ - template - static Filter And(const Filters&... filters) { - return AndInternal(filters...); - } - - /** - * @brief Creates a new filter that is a conjunction of the given filters. A - * conjunction filter includes a document if it satisfies all of the given - * filters. - * - * If no filter is given, the composite filter is a no-op, and if only one - * filter is given, the composite filter has the same behavior as the - * underlying filter. - * - * @param[in] filters The list that contains filters to perform a conjunction - * for. - * - * @return The newly created filter. - */ - static Filter And(const std::vector& filters); - - /** - * @brief Creates a new filter that is a disjunction of the given filters. A - * disjunction filter includes a document if it satisfies any of the - * given filters. - * - * If no filter is given, the composite filter is a no-op, and if only one - * filter is given, the composite filter has the same behavior as the - * underlying filter. - * - * @param[in] filters The filters to perform a disjunction for. - * - * @return The newly created filter. - */ - template - static Filter Or(const Filters&... filters) { - return OrInternal(filters...); - } - - /** - * @brief Creates a new filter that is a disjunction of the given filters. A - * disjunction filter includes a document if it satisfies any of the - * given filters. - * - * If no filter is given, the composite filter is a no-op, and if only one - * filter is given, the composite filter has the same behavior as the - * underlying filter. - * - * @param[in] filters The list that contains filters to perform a disjunction - * for. - * - * @return The newly created filter. - */ - static Filter Or(const std::vector& filters); - - /** - * @brief Copy constructor. - * - * `Filter` is immutable and can be efficiently copied. - * - * @param[in] other `Filter` to copy from. - */ - Filter(const Filter& other); - - /** - * @brief Move constructor. - * - * @param[in] other `Filter` to move data from. - */ - Filter(Filter&& other) noexcept; - - /** - * @brief Copy assignment operator. - * - * `Filter` is immutable and can be efficiently copied. - * - * @param[in] other `Filter` to copy from. - * - * @return Reference to the destination `Filter`. - */ - Filter& operator=(const Filter& other); - - /** - * @brief Move assignment operator. - * - * @param[in] other `Filter` to move data from. - * - * @return Reference to the destination `Filter`. - */ - Filter& operator=(Filter&& other) noexcept; - - ~Filter(); - - private: - friend class Query; - friend class QueryInternal; - friend class FilterInternal; - friend bool operator==(const Filter& lhs, const Filter& rhs); - friend struct ConverterImpl; - - static inline Filter AndInternal(const Filter& filter) { return filter; } - - template - static inline Filter AndInternal(const Filters&... filters) { - return And(std::vector({filters...})); - } - - static inline Filter OrInternal(const Filter& filter) { return filter; } - - template - static inline Filter OrInternal(const Filters&... filters) { - return Or(std::vector({filters...})); - } - - bool IsEmpty() const; - - explicit Filter(FilterInternal* internal); - FilterInternal* internal_ = nullptr; -}; - -/** Checks `lhs` and `rhs` for equality. */ -bool operator==(const Filter& lhs, const Filter& rhs); - -/** Checks `lhs` and `rhs` for inequality. */ -inline bool operator!=(const Filter& lhs, const Filter& rhs) { - return !(lhs == rhs); -} - -} // namespace firestore -} // namespace firebase - -#endif // FIREBASE_FIRESTORE_SRC_INCLUDE_FIREBASE_FIRESTORE_FILTER_H_ diff --git a/firestore/src/include/firebase/firestore/query.h b/firestore/src/include/firebase/firestore/query.h index d696492146..0586756854 100644 --- a/firestore/src/include/firebase/firestore/query.h +++ b/firestore/src/include/firebase/firestore/query.h @@ -41,7 +41,6 @@ class AggregateQuery; class DocumentSnapshot; template class EventListener; -class Filter; class FieldPath; class FieldValue; class ListenerRegistration; @@ -84,7 +83,8 @@ class Query { /** * @brief Copy constructor. * - * `Query` is immutable and can be efficiently copied. + * `Query` is immutable and can be efficiently copied (no deep copy is + * performed). * * @param[in] other `Query` to copy from. */ @@ -105,7 +105,8 @@ class Query { /** * @brief Copy assignment operator. * - * `Query` is immutable and can be efficiently copied. + * `Query` is immutable and can be efficiently copied (no deep copy is + * performed). * * @param[in] other `Query` to copy from. * @@ -160,14 +161,6 @@ class Query { */ virtual AggregateQuery Count() const; - /** - * @brief Creates and returns a new Query with the additional filter. - * - * @param filter The new filter to apply to the existing query. - * @return The created Query. - */ - virtual Query Where(const Filter& filter) const; - /** * @brief Creates and returns a new Query with the additional filter that * documents must contain the specified field and the value should be equal to @@ -402,7 +395,7 @@ class Query { * A Query can have only one `WhereIn()` filter and it cannot be * combined with `WhereArrayContainsAny()`. * - * @param[in] field The name of the field to compare. + * @param[in] field The name of the field containing an array to search. * @param[in] values The list that contains the values to match. * * @return The created Query. @@ -418,7 +411,7 @@ class Query { * A Query can have only one `WhereIn()` filter and it cannot be * combined with `WhereArrayContainsAny()`. * - * @param[in] field The path of the field to compare. + * @param[in] field The path of the field containing an array to search. * @param[in] values The list that contains the values to match. * * @return The created Query. @@ -440,7 +433,7 @@ class Query { * combined with `WhereArrayContains()`, `WhereArrayContainsAny()`, * `WhereIn()`, or `WhereNotEqualTo()`. * - * @param[in] field The name of the field to compare. + * @param[in] field The name of the field containing an array to search. * @param[in] values The list that contains the values to match. * * @return The created Query. @@ -462,7 +455,7 @@ class Query { * combined with `WhereArrayContains()`, `WhereArrayContainsAny()`, * `WhereIn()`, or `WhereNotEqualTo()`. * - * @param[in] field The path of the field to compare. + * @param[in] field The path of the field containing an array to search. * @param[in] values The list that contains the values to match. * * @return The created Query. diff --git a/firestore/src/main/composite_filter_main.cc b/firestore/src/main/composite_filter_main.cc deleted file mode 100644 index 82666c528b..0000000000 --- a/firestore/src/main/composite_filter_main.cc +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#if defined(__ANDROID__) -#error "This header should not be used on Android." -#endif - -#include -#include - -#include "Firestore/core/src/core/composite_filter.h" -#include "absl/algorithm/container.h" -#include "firestore/src/common/util.h" -#include "firestore/src/main/composite_filter_main.h" -#include "firestore/src/main/converter_main.h" - -namespace firebase { -namespace firestore { - -CompositeFilterInternal::CompositeFilterInternal( - core::CompositeFilter::Operator op, std::vector& filters) - : FilterInternal(FilterType::Composite), op_(op) { - for (FilterInternal* filter_internal : filters) { - filters_.emplace_back(std::shared_ptr(filter_internal)); - } -} - -CompositeFilterInternal* CompositeFilterInternal::clone() { - return new CompositeFilterInternal(*this); -} - -bool CompositeFilterInternal::IsEmpty() const { return filters_.empty(); } - -core::Filter CompositeFilterInternal::ToCoreFilter( - const api::Query& query, - const firebase::firestore::UserDataConverter& user_data_converter) const { - std::vector core_filters{}; - for (auto& filter : filters_) { - core_filters.push_back(filter->ToCoreFilter(query, user_data_converter)); - } - return core::CompositeFilter::Create(std::move(core_filters), op_); -} - -bool operator==(const CompositeFilterInternal& lhs, - const CompositeFilterInternal& rhs) { - return lhs.op_ == rhs.op_ && lhs.filters_.size() == rhs.filters_.size() && - std::equal(lhs.filters_.begin(), lhs.filters_.end(), - rhs.filters_.begin(), rhs.filters_.end(), - [](const std::shared_ptr& lhs_filter, - const std::shared_ptr& rhs_filter) { - return EqualityCompare(lhs_filter.get(), - rhs_filter.get()); - }); -} - -} // namespace firestore -} // namespace firebase diff --git a/firestore/src/main/composite_filter_main.h b/firestore/src/main/composite_filter_main.h deleted file mode 100644 index 4eb1ee5af8..0000000000 --- a/firestore/src/main/composite_filter_main.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef FIREBASE_FIRESTORE_SRC_MAIN_COMPOSITE_FILTER_MAIN_H_ -#define FIREBASE_FIRESTORE_SRC_MAIN_COMPOSITE_FILTER_MAIN_H_ - -#if defined(__ANDROID__) -#error "This header should not be used on Android." -#endif - -#include -#include - -#include "Firestore/core/src/api/query_core.h" -#include "firestore/src/main/filter_main.h" - -namespace firebase { -namespace firestore { - -class CompositeFilterInternal : public FilterInternal { - public: - CompositeFilterInternal(core::CompositeFilter::Operator op, - std::vector& filters); - - core::Filter ToCoreFilter(const api::Query& query, - const firebase::firestore::UserDataConverter& - user_data_converter) const override; - - friend bool operator==(const CompositeFilterInternal& lhs, - const CompositeFilterInternal& rhs); - - protected: - bool IsEmpty() const override; - - private: - CompositeFilterInternal* clone() override; - - const core::CompositeFilter::Operator op_; - std::vector> filters_; -}; - -bool operator==(const CompositeFilterInternal& lhs, - const CompositeFilterInternal& rhs); - -inline bool operator!=(const CompositeFilterInternal& lhs, - const CompositeFilterInternal& rhs) { - return !(lhs == rhs); -} - -} // namespace firestore -} // namespace firebase - -#endif // FIREBASE_FIRESTORE_SRC_MAIN_COMPOSITE_FILTER_MAIN_H_ diff --git a/firestore/src/main/converter_main.h b/firestore/src/main/converter_main.h index a4f1146e3c..14dac38a59 100644 --- a/firestore/src/main/converter_main.h +++ b/firestore/src/main/converter_main.h @@ -38,7 +38,6 @@ #include "firestore/src/main/aggregate_query_main.h" #include "firestore/src/main/aggregate_query_snapshot_main.h" #include "firestore/src/main/collection_reference_main.h" -#include "firestore/src/main/composite_filter_main.h" #include "firestore/src/main/document_change_main.h" #include "firestore/src/main/document_reference_main.h" #include "firestore/src/main/document_snapshot_main.h" @@ -47,7 +46,6 @@ #include "firestore/src/main/query_main.h" #include "firestore/src/main/query_snapshot_main.h" #include "firestore/src/main/transaction_main.h" -#include "firestore/src/main/unary_filter_main.h" #include "firestore/src/main/write_batch_main.h" #if defined(__ANDROID__) @@ -110,14 +108,6 @@ inline DocumentSnapshot MakePublic(api::DocumentSnapshot&& from) { return ConverterImpl::MakePublicFromCore(std::move(from)); } -inline Filter MakePublic(UnaryFilterInternal&& from) { - return ConverterImpl::MakePublicFromInternal(std::move(from)); -} - -inline Filter MakePublic(CompositeFilterInternal&& from) { - return ConverterImpl::MakePublicFromInternal(std::move(from)); -} - inline FieldValue MakePublic(FieldValueInternal&& from) { return ConverterImpl::MakePublicFromInternal(std::move(from)); } diff --git a/firestore/src/main/filter_main.cc b/firestore/src/main/filter_main.cc deleted file mode 100644 index bbc3afbcb1..0000000000 --- a/firestore/src/main/filter_main.cc +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -#include "firestore/src/main/composite_filter_main.h" -#include "firestore/src/main/converter_main.h" -#include "firestore/src/main/filter_main.h" -#include "firestore/src/main/unary_filter_main.h" - -namespace firebase { -namespace firestore { - -Filter FilterInternal::ArrayContains(const FieldPath& field, - const FieldValue& value) { - return UnaryFilter(field, FieldFilterOperator::ArrayContains, value); -} - -Filter FilterInternal::ArrayContainsAny(const FieldPath& field, - const std::vector& values) { - return UnaryFilter(field, FieldFilterOperator::ArrayContainsAny, values); -} - -Filter FilterInternal::EqualTo(const FieldPath& field, - const FieldValue& value) { - return UnaryFilter(field, FieldFilterOperator::Equal, value); -} - -Filter FilterInternal::NotEqualTo(const FieldPath& field, - const FieldValue& value) { - return UnaryFilter(field, FieldFilterOperator::NotEqual, value); -} - -Filter FilterInternal::GreaterThan(const FieldPath& field, - const FieldValue& value) { - return UnaryFilter(field, FieldFilterOperator::GreaterThan, value); -} - -Filter FilterInternal::GreaterThanOrEqualTo(const FieldPath& field, - const FieldValue& value) { - return UnaryFilter(field, FieldFilterOperator::GreaterThanOrEqual, value); -} - -Filter FilterInternal::LessThan(const FieldPath& field, - const FieldValue& value) { - return UnaryFilter(field, FieldFilterOperator::LessThan, value); -} - -Filter FilterInternal::LessThanOrEqualTo(const FieldPath& field, - const FieldValue& value) { - return UnaryFilter(field, FieldFilterOperator::LessThanOrEqual, value); -} - -Filter FilterInternal::In(const FieldPath& field, - const std::vector& values) { - return UnaryFilter(field, FieldFilterOperator::In, values); -} - -Filter FilterInternal::NotIn(const FieldPath& field, - const std::vector& values) { - return UnaryFilter(field, FieldFilterOperator::NotIn, values); -} - -Filter FilterInternal::Or(const std::vector& filters) { - return CompositeFilter(CompositeOperator::Or, filters); -} - -Filter FilterInternal::And(const std::vector& filters) { - return CompositeFilter(CompositeOperator::And, filters); -} - -FilterInternal::FilterInternal(FilterInternal::FilterType filter_type) - : filter_type_(filter_type) {} - -Filter FilterInternal::UnaryFilter(const FieldPath& field_path, - FieldFilterOperator op, - const FieldValue& value) { - return MakePublic(UnaryFilterInternal(field_path, op, value)); -} - -Filter FilterInternal::UnaryFilter(const FieldPath& field_path, - FieldFilterOperator op, - const std::vector& values) { - return MakePublic(UnaryFilterInternal(field_path, op, values)); -} - -Filter FilterInternal::CompositeFilter(core::CompositeFilter::Operator op, - const std::vector& filters) { - std::vector nonEmptyFilters{}; - for (const Filter& filter : filters) { - FilterInternal* filterInternal = GetInternal(&filter); - if (!filterInternal->IsEmpty()) { - nonEmptyFilters.push_back(filterInternal->clone()); - } - } - if (nonEmptyFilters.size() == 1) { - return Filter(nonEmptyFilters[0]); - } - return MakePublic(CompositeFilterInternal(op, nonEmptyFilters)); -} - -bool operator==(const FilterInternal& lhs, const FilterInternal& rhs) { - if (lhs.filter_type_ == rhs.filter_type_) { - switch (lhs.filter_type_) { - case FilterInternal::Composite: - return *static_cast(&lhs) == - *static_cast(&rhs); - case FilterInternal::Unary: - return *static_cast(&lhs) == - *static_cast(&rhs); - } - } - return false; -} - -} // namespace firestore -} // namespace firebase diff --git a/firestore/src/main/filter_main.h b/firestore/src/main/filter_main.h deleted file mode 100644 index fbe1f4b728..0000000000 --- a/firestore/src/main/filter_main.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef FIREBASE_FIRESTORE_SRC_MAIN_FILTER_MAIN_H_ -#define FIREBASE_FIRESTORE_SRC_MAIN_FILTER_MAIN_H_ - -#if defined(__ANDROID__) -#error "This header should not be used on Android." -#endif - -#include - -#include "Firestore/core/src/api/query_core.h" -#include "Firestore/core/src/core/composite_filter.h" -#include "Firestore/core/src/core/filter.h" -#include "Firestore/core/src/model/field_path.h" -#include "firestore/src/include/firebase/firestore/filter.h" -#include "firestore/src/main/user_data_converter_main.h" - -namespace firebase { -namespace firestore { - -class Filter; - -class FilterInternal { - public: - static Filter ArrayContains(const FieldPath& field, const FieldValue& value); - static Filter ArrayContainsAny(const FieldPath& field, - const std::vector& values); - static Filter EqualTo(const FieldPath& field, const FieldValue& value); - static Filter NotEqualTo(const FieldPath& field, const FieldValue& value); - static Filter GreaterThan(const FieldPath& field, const FieldValue& value); - static Filter GreaterThanOrEqualTo(const FieldPath& field, - const FieldValue& value); - static Filter LessThan(const FieldPath& field, const FieldValue& value); - static Filter LessThanOrEqualTo(const FieldPath& field, - const FieldValue& value); - static Filter In(const FieldPath& field, - const std::vector& values); - static Filter NotIn(const FieldPath& field, - const std::vector& values); - static Filter Or(const std::vector& filters); - static Filter And(const std::vector& filters); - - virtual core::Filter ToCoreFilter( - const api::Query& query, - const firebase::firestore::UserDataConverter& user_data_converter) - const = 0; - - virtual ~FilterInternal() = default; - - friend bool operator==(const FilterInternal& lhs, const FilterInternal& rhs); - - protected: - enum FilterType { Unary, Composite }; - - explicit FilterInternal(FilterType filterType); - - const FilterType filter_type_; - - virtual bool IsEmpty() const = 0; - - private: - friend class Filter; - friend class QueryInternal; - - virtual FilterInternal* clone() = 0; - - using FieldFilterOperator = core::FieldFilter::Operator; - using CompositeOperator = core::CompositeFilter::Operator; - - static Filter UnaryFilter(const FieldPath& field_path, - FieldFilterOperator op, - const FieldValue& value); - static Filter UnaryFilter(const FieldPath& field_path, - FieldFilterOperator op, - const std::vector& values); - - static Filter CompositeFilter(CompositeOperator op, - const std::vector& filters); -}; - -bool operator==(const FilterInternal& lhs, const FilterInternal& rhs); - -inline bool operator!=(const FilterInternal& lhs, const FilterInternal& rhs) { - return !(lhs == rhs); -} - -} // namespace firestore -} // namespace firebase - -#endif // FIREBASE_FIRESTORE_SRC_MAIN_FILTER_MAIN_H_ diff --git a/firestore/src/main/query_main.cc b/firestore/src/main/query_main.cc index 6dab91109a..ffed058c9e 100644 --- a/firestore/src/main/query_main.cc +++ b/firestore/src/main/query_main.cc @@ -37,7 +37,6 @@ #include "firestore/src/main/aggregate_query_main.h" #include "firestore/src/main/converter_main.h" #include "firestore/src/main/document_snapshot_main.h" -#include "firestore/src/main/filter_main.h" #include "firestore/src/main/listener_main.h" #include "firestore/src/main/promise_main.h" #include "firestore/src/main/set_options_main.h" @@ -99,24 +98,31 @@ Future QueryInternal::Get(Source source) { AggregateQuery QueryInternal::Count() { return MakePublic(query_.Count()); } -Query QueryInternal::Where(const Filter& filter) const { - SIMPLE_HARD_ASSERT(!filter.IsEmpty()); - core::Filter core_filter = - GetInternal(&filter)->ToCoreFilter(query_, user_data_converter_); - api::Query decorated = query_.AddNewFilter(std::move(core_filter)); - return MakePublic(std::move(decorated)); -} - Query QueryInternal::Where(const FieldPath& field_path, Operator op, const FieldValue& value) const { - return Where(UnaryFilterInternal::UnaryFilter(field_path, op, value)); + const model::FieldPath& path = GetInternal(field_path); + Message parsed = + user_data_converter_.ParseQueryValue(value); + auto describer = [&value] { return Describe(value.type()); }; + + api::Query decorated = query_.AddNewFilter( + query_.ParseFieldFilter(path, op, std::move(parsed), describer)); + return MakePublic(std::move(decorated)); } Query QueryInternal::Where(const FieldPath& field_path, Operator op, const std::vector& values) const { - return Where(UnaryFilterInternal::UnaryFilter(field_path, op, values)); + const model::FieldPath& path = GetInternal(field_path); + auto array_value = FieldValue::Array(values); + Message parsed = + user_data_converter_.ParseQueryValue(array_value, true); + auto describer = [&array_value] { return Describe(array_value.type()); }; + + api::Query decorated = query_.AddNewFilter( + query_.ParseFieldFilter(path, op, std::move(parsed), describer)); + return MakePublic(std::move(decorated)); } Query QueryInternal::WithBound(BoundPosition bound_pos, diff --git a/firestore/src/main/query_main.h b/firestore/src/main/query_main.h index ddf773f846..958df81f03 100644 --- a/firestore/src/main/query_main.h +++ b/firestore/src/main/query_main.h @@ -28,7 +28,6 @@ #include "Firestore/core/src/core/query.h" #include "Firestore/core/src/nanopb/message.h" #include "firestore/src/include/firebase/firestore/field_path.h" -#include "firestore/src/include/firebase/firestore/filter.h" #include "firestore/src/include/firebase/firestore/query.h" #include "firestore/src/main/firestore_main.h" #include "firestore/src/main/promise_factory_main.h" @@ -69,7 +68,6 @@ class QueryInternal { callback); // Delegating methods - Query Where(const Filter& filter) const; Query WhereEqualTo(const FieldPath& field, const FieldValue& value) const { return Where(field, Operator::Equal, value); diff --git a/firestore/src/main/unary_filter_main.cc b/firestore/src/main/unary_filter_main.cc deleted file mode 100644 index 3561ba6f60..0000000000 --- a/firestore/src/main/unary_filter_main.cc +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -#include "firestore/src/main/unary_filter_main.h" - -#include "Firestore/core/src/nanopb/message.h" -#include "firestore/src/main/converter_main.h" - -namespace firebase { -namespace firestore { - -using nanopb::Message; - -UnaryFilterInternal::UnaryFilterInternal(FieldPath field_path, - core::FieldFilter::Operator op, - FieldValue value) - : FilterInternal(FilterType::Unary), - allow_arrays_(false), - path_(std::move(field_path)), - op_(op), - value_(std::move(value)) {} - -UnaryFilterInternal::UnaryFilterInternal(FieldPath field_path, - core::FieldFilter::Operator op, - const std::vector& values) - : FilterInternal(FilterType::Unary), - allow_arrays_(true), - path_(std::move(field_path)), - op_(op), - value_(FieldValue::Array(values)) {} - -UnaryFilterInternal* UnaryFilterInternal::clone() { - return new UnaryFilterInternal(*this); -} - -core::Filter UnaryFilterInternal::ToCoreFilter( - const api::Query& query, - const firebase::firestore::UserDataConverter& user_data_converter) const { - const model::FieldPath& path = GetInternal(path_); - Message parsed = - user_data_converter.ParseQueryValue(value_, allow_arrays_); - auto describer = [this] { return Describe(value_.type()); }; - - return query.ParseFieldFilter(path, op_, std::move(parsed), describer); -} - -bool operator==(const UnaryFilterInternal& lhs, - const UnaryFilterInternal& rhs) { - return lhs.op_ == rhs.op_ && lhs.path_ == rhs.path_ && - lhs.value_ == rhs.value_; -} - -} // namespace firestore -} // namespace firebase diff --git a/firestore/src/main/unary_filter_main.h b/firestore/src/main/unary_filter_main.h deleted file mode 100644 index e23d0c9481..0000000000 --- a/firestore/src/main/unary_filter_main.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef FIREBASE_FIRESTORE_SRC_MAIN_UNARY_FILTER_MAIN_H_ -#define FIREBASE_FIRESTORE_SRC_MAIN_UNARY_FILTER_MAIN_H_ - -#if defined(__ANDROID__) -#error "This header should not be used on Android." -#endif - -#include - -#include "Firestore/core/src/api/query_core.h" -#include "firestore/src/main/filter_main.h" - -namespace firebase { -namespace firestore { - -class UnaryFilterInternal final : public FilterInternal { - public: - UnaryFilterInternal(FieldPath field_path, - core::FieldFilter::Operator op, - FieldValue value); - UnaryFilterInternal(FieldPath field_path, - core::FieldFilter::Operator op, - const std::vector& values); - - core::Filter ToCoreFilter(const api::Query& query, - const firebase::firestore::UserDataConverter& - user_data_converter) const override; - - friend bool operator==(const UnaryFilterInternal& lhs, - const UnaryFilterInternal& rhs); - - protected: - bool IsEmpty() const override { return false; } - - private: - UnaryFilterInternal* clone() override; - - const bool allow_arrays_ = false; - const FieldPath path_; - const core::FieldFilter::Operator op_; - const FieldValue value_; -}; - -bool operator==(const UnaryFilterInternal& lhs, const UnaryFilterInternal& rhs); - -inline bool operator!=(const UnaryFilterInternal& lhs, - const UnaryFilterInternal& rhs) { - return !(lhs == rhs); -} - -} // namespace firestore -} // namespace firebase - -#endif // FIREBASE_FIRESTORE_SRC_MAIN_UNARY_FILTER_MAIN_H_ diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 6264e109c0..e1ff9696b8 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -627,11 +627,6 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes -### Upcoming Release -- Changes - - Firestore: Add support for disjunctions in queries (OR queries) - ([#1335](https://github.com/firebase/firebase-cpp-sdk/pull/1335)). - ### 11.3.0 - Changes - General (Android): Update to Firebase Android BoM version 32.2.0. From 27a10bce3d77eb9ba95ad4409963fbbce1da662b Mon Sep 17 00:00:00 2001 From: Matthew Hyndman Date: Mon, 31 Jul 2023 12:43:29 -0400 Subject: [PATCH 07/14] Wrap the real-time RemoteConfig test in flaky-block to automatically retry. (#1406) * Only use flaky_test on android --- .../integration_test/src/integration_test.cc | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/remote_config/integration_test/src/integration_test.cc b/remote_config/integration_test/src/integration_test.cc index 4bc466276c..2ce5f145af 100644 --- a/remote_config/integration_test/src/integration_test.cc +++ b/remote_config/integration_test/src/integration_test.cc @@ -266,6 +266,10 @@ TEST_F(FirebaseRemoteConfigTest, TestSetDefault) { TEST_F(FirebaseRemoteConfigTest, TestAddOnConfigUpdateListener) { ASSERT_NE(rc_, nullptr); + // This test sometimes times out on Android with the config not updated. +#if defined(__ANDROID__) + FLAKY_TEST_SECTION_BEGIN(); +#endif // defined(__ANDROID__) // Check if the config has default values. If not, we have cached data // from a previous test run, and auto-fetch will not happen. EXPECT_TRUE(WaitForCompletion(SetDefaults(rc_), "SetDefaults")); @@ -302,6 +306,7 @@ TEST_F(FirebaseRemoteConfigTest, TestAddOnConfigUpdateListener) { firebase::remote_config::RemoteConfigError) {}); #else auto config_update_promise = std::make_shared >(); + auto config_update_future = config_update_promise->get_future(); firebase::remote_config::ConfigUpdateListenerRegistration registration = rc_->AddOnConfigUpdateListener( @@ -312,9 +317,8 @@ TEST_F(FirebaseRemoteConfigTest, TestAddOnConfigUpdateListener) { config_update_promise->set_value(); }); if (!has_cached_data) { - auto config_update_future = config_update_promise->get_future(); ASSERT_EQ(std::future_status::ready, - config_update_future.wait_for(std::chrono::milliseconds(30000))); + config_update_future.wait_for(std::chrono::milliseconds(20000))); // On Android WaitForCompletion must be called from the main thread, // so Activate is called here outside of the listener. @@ -324,15 +328,19 @@ TEST_F(FirebaseRemoteConfigTest, TestAddOnConfigUpdateListener) { std::map key_values = rc_->GetAll(); EXPECT_EQ(key_values.size(), 6); - for (auto key_valur_pair : kServerValue) { - firebase::Variant k_value = key_valur_pair.value; - firebase::Variant fetched_value = key_values[key_valur_pair.key]; + for (auto key_value_pair : kServerValue) { + firebase::Variant k_value = key_value_pair.value; + firebase::Variant fetched_value = key_values[key_value_pair.key]; EXPECT_EQ(k_value.type(), fetched_value.type()); EXPECT_EQ(k_value, fetched_value); } registration.Remove(); } #endif // !FIREBASE_PLATFORM_DESKTOP + // This test sometimes times out on Android with the config not updated. +#if defined(__ANDROID__) + FLAKY_TEST_SECTION_END(); +#endif // defined(__ANDROID__) } TEST_F(FirebaseRemoteConfigTest, TestRemoveConfigUpdateListener) { @@ -377,9 +385,9 @@ TEST_F(FirebaseRemoteConfigTest, TestGetAll) { std::map key_values = rc_->GetAll(); EXPECT_EQ(key_values.size(), 6); - for (auto key_valur_pair : kServerValue) { - firebase::Variant k_value = key_valur_pair.value; - firebase::Variant fetched_value = key_values[key_valur_pair.key]; + for (auto key_value_pair : kServerValue) { + firebase::Variant k_value = key_value_pair.value; + firebase::Variant fetched_value = key_values[key_value_pair.key]; EXPECT_EQ(k_value.type(), fetched_value.type()); EXPECT_EQ(k_value, fetched_value); } From 9ac8881a59f4a49ca7bf1c384cb39dc12e696b42 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Mon, 31 Jul 2023 15:44:11 -0700 Subject: [PATCH 08/14] Update the iOS version used by FTL (#1408) --- scripts/gha/print_matrix_configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/gha/print_matrix_configuration.py b/scripts/gha/print_matrix_configuration.py index 65f575aa5b..1f73fdf9d4 100644 --- a/scripts/gha/print_matrix_configuration.py +++ b/scripts/gha/print_matrix_configuration.py @@ -174,7 +174,7 @@ "emulator_32bit": {"type": "virtual", "image":"system-images;android-30;google_apis;x86"}, "ios_min": {"type": "ftl", "device": "model=iphone8,version=14.7"}, "ios_target": {"type": "ftl", "device": "model=iphone13pro,version=15.7"}, - "ios_latest": {"type": "ftl", "device": "model=iphone11pro,version=16.3"}, + "ios_latest": {"type": "ftl", "device": "model=iphone11pro,version=16.5"}, "simulator_min": {"type": "virtual", "name":"iPhone 8", "version":"15.2"}, "simulator_target": {"type": "virtual", "name":"iPhone 8", "version":"16.1"}, "simulator_latest": {"type": "virtual", "name":"iPhone 11", "version":"16.1"}, From f8b6a3698190af4d1698553c10afce9524d60be2 Mon Sep 17 00:00:00 2001 From: a-maurice Date: Tue, 1 Aug 2023 17:25:38 -0700 Subject: [PATCH 09/14] Kick off nightly packaging an hour earlier (#1409) --- .github/workflows/cpp-packaging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cpp-packaging.yml b/.github/workflows/cpp-packaging.yml index acd7069d5a..5d40d5e33b 100644 --- a/.github/workflows/cpp-packaging.yml +++ b/.github/workflows/cpp-packaging.yml @@ -5,7 +5,7 @@ on: # Run a full packaging step any time a new branch is merged into main. - main schedule: - - cron: "0 9 * * *" # 9am UTC = 1am PST / 2am PDT + - cron: "0 8 * * *" # 8am UTC = 12am PST / 1am PDT workflow_dispatch: inputs: preserveIntermediateArtifacts: From 18367c01329116c8cad0f9c5f9b478c6a0dea60b Mon Sep 17 00:00:00 2001 From: Matthew Hyndman Date: Wed, 2 Aug 2023 01:16:55 -0400 Subject: [PATCH 10/14] Fix crash on gma::Initialize without a Firebase App (#1320) Initialize Util before using Util::FIndClass. Also add an integration test for initializing gma without a firebase app. --- gma/integration_test/src/integration_test.cc | 40 +++++++++++++++++--- gma/src/android/gma_android.cc | 13 ++++--- release_build_files/readme.md | 4 ++ 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/gma/integration_test/src/integration_test.cc b/gma/integration_test/src/integration_test.cc index 2a48d0066f..d44b0c869a 100644 --- a/gma/integration_test/src/integration_test.cc +++ b/gma/integration_test/src/integration_test.cc @@ -173,6 +173,12 @@ class FirebaseGmaUITest : public FirebaseGmaTest { void SetUp() override; }; +class FirebaseGmaMinimalTest : public FirebaseTest { + public: + FirebaseGmaMinimalTest(); + ~FirebaseGmaMinimalTest() override; +}; + // Runs GMA Tests on methods and functions that should be run // before GMA initializes. class FirebaseGmaPreInitializationTests : public FirebaseGmaTest { @@ -228,11 +234,11 @@ void FirebaseGmaTest::SetUpTestSuite() { } void FirebaseGmaTest::TearDownTestSuite() { - // Workaround: GMA does some of its initialization in the main - // thread, so if you terminate it too quickly after initialization - // it can cause issues. Add a small delay here in case most of the - // tests are skipped. - ProcessEvents(1000); + // GMA does some of its initialization in the main thread, so if you terminate + // it before initialization has completed, it can cause issues. So wait for + // any pending GMA initialization to be completed before calling terminate. + WaitForCompletion(firebase::gma::InitializeLastResult(), + "gma::InitializeLastResult"); LogDebug("Shutdown GMA."); firebase::gma::Terminate(); LogDebug("Shutdown Firebase App."); @@ -301,6 +307,10 @@ firebase::Variant FirebaseGmaTest::GetVariantMap() { return variant_map; } +FirebaseGmaMinimalTest::FirebaseGmaMinimalTest() {} + +FirebaseGmaMinimalTest::~FirebaseGmaMinimalTest() {} + FirebaseGmaUITest::FirebaseGmaUITest() {} FirebaseGmaUITest::~FirebaseGmaUITest() {} @@ -340,6 +350,26 @@ void FirebaseGmaPreInitializationTests::SetUpTestSuite() { // Test cases below. +TEST_F(FirebaseGmaMinimalTest, TestInitializeGmaWithoutFirebase) { + // Don't initialize mediation in this test so that a later test can still + // verify that mediation has not been initialized. + firebase::gma::DisableMediationInitialization(); + LogDebug("Initializing GMA without a Firebase App."); + firebase::InitResult result; +#if defined(ANDROID) + ::firebase::gma::Initialize(app_framework::GetJniEnv(), + app_framework::GetActivity(), &result); +#else // !defined(ANDROID) + ::firebase::gma::Initialize(&result); +#endif // defined(ANDROID) + EXPECT_EQ(result, ::firebase::kInitResultSuccess); + WaitForCompletion(firebase::gma::InitializeLastResult(), "gma::Initialize"); + LogDebug("Successfully initialized GMA."); + + LogDebug("Shutdown GMA."); + firebase::gma::Terminate(); +} + TEST_F(FirebaseGmaPreInitializationTests, TestDisableMediationInitialization) { // Note: This test should be disabled or put in an entirely different test // binrary if we ever wish to test mediation in this application. diff --git a/gma/src/android/gma_android.cc b/gma/src/android/gma_android.cc index a1459e20b8..bcc7e35949 100644 --- a/gma/src/android/gma_android.cc +++ b/gma/src/android/gma_android.cc @@ -285,11 +285,7 @@ Future Initialize(JNIEnv* env, jobject activity, env->GetJavaVM(&g_java_vm); } - // GMA requires Google Play services if the class - // "com.google.android.gms.ads.internal.ClientApi" does not exist. - if (!util::FindClass(env, "com/google/android/gms/ads/internal/ClientApi") && - google_play_services::CheckAvailability(env, activity) != - google_play_services::kAvailabilityAvailable) { + if (!util::Initialize(env, activity)) { if (init_result_out) { *init_result_out = kInitResultFailedMissingDependency; } @@ -298,7 +294,12 @@ Future Initialize(JNIEnv* env, jobject activity, return Future(); } - if (!util::Initialize(env, activity)) { + // GMA requires Google Play services if the class + // "com.google.android.gms.ads.internal.ClientApi" does not exist. + if (!util::FindClass(env, "com/google/android/gms/ads/internal/ClientApi") && + google_play_services::CheckAvailability(env, activity) != + google_play_services::kAvailabilityAvailable) { + util::Terminate(env); if (init_result_out) { *init_result_out = kInitResultFailedMissingDependency; } diff --git a/release_build_files/readme.md b/release_build_files/readme.md index e1ff9696b8..24f7ac2017 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -627,6 +627,10 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes +### Upcoming Release +- Changes + - GMA (Android): Fixed a crash when initializing GMA without a Firebase App. + ### 11.3.0 - Changes - General (Android): Update to Firebase Android BoM version 32.2.0. From 505f12e0cd0b7317634d6676183d354e2fa394e4 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Thu, 3 Aug 2023 10:12:16 -0700 Subject: [PATCH 11/14] build: pass along the CMake path (#1410) When building the subproject, we would invoke `cmake` directly, relying on the path lookup of the tool, which may or may not match the currently executing CMake. Use `CMAKE_COMMAND` which gives us the path to the current CMake executable ensuring that we use the same CMake for building the dependencies. --- cmake/external_rules.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/external_rules.cmake b/cmake/external_rules.cmake index 2d1ce79a2d..bdd38b0eda 100644 --- a/cmake/external_rules.cmake +++ b/cmake/external_rules.cmake @@ -241,7 +241,7 @@ function(build_external_dependencies) if(NOT ANDROID AND NOT IOS) if (FIREBASE_USE_BORINGSSL) execute_process( - COMMAND ${ENV_COMMAND} cmake -DOPENSSL_NO_ASM=TRUE ${CMAKE_SUB_CONFIGURE_OPTIONS} ../boringssl + COMMAND ${ENV_COMMAND} ${CMAKE_COMMAND} -DOPENSSL_NO_ASM=TRUE ${CMAKE_SUB_CONFIGURE_OPTIONS} ../boringssl WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/external/src/boringssl-build RESULT_VARIABLE boringssl_configure_status ) @@ -255,7 +255,7 @@ function(build_external_dependencies) endif() execute_process( - COMMAND ${ENV_COMMAND} cmake --build . ${CMAKE_SUB_BUILD_OPTIONS} --target ssl crypto -- ${cmake_build_args} + COMMAND ${ENV_COMMAND} ${CMAKE_COMMAND} --build . ${CMAKE_SUB_BUILD_OPTIONS} --target ssl crypto -- ${cmake_build_args} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/external/src/boringssl-build RESULT_VARIABLE boringssl_build_status ) From 5df80a2c3de72a9cdfafae6dcf67d0ddcf4537c6 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Thu, 3 Aug 2023 16:21:51 -0700 Subject: [PATCH 12/14] Add log to gsutil fetch. (#1411) --- .../integration_testing/ftl_gha_validator.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/gha/integration_testing/ftl_gha_validator.py b/scripts/gha/integration_testing/ftl_gha_validator.py index 58119d2315..dfa6118ebb 100644 --- a/scripts/gha/integration_testing/ftl_gha_validator.py +++ b/scripts/gha/integration_testing/ftl_gha_validator.py @@ -79,7 +79,18 @@ def _gcs_list_dir(gcs_path): """Recursively returns a list of contents for a directory on GCS.""" args = [GSUTIL, "ls", "-r", gcs_path] logging.info("Listing GCS contents: %s", " ".join(args)) - result = subprocess.run(args=args, capture_output=True, text=True, check=True) + try: + result = subprocess.run(args=args, capture_output=True, text=True, check=True) + except subprocess.CalledProcessError as e: + # It's possible to have a CalledProcessError but still have gotten a file list. + # Check the stdout to see if we got lines that look GCS file paths, and ignore + # the error if so. + output = e.output.splitlines() + if len(output) > 1 and gcs_path in output[0]: + return output + else: + print("Error: %s" % e.stderr) + raise e return result.stdout.splitlines() @@ -88,7 +99,11 @@ def _gcs_read_file(gcs_path): """Extracts the contents of a file on GCS.""" args = [GSUTIL, "cat", gcs_path] logging.info("Reading GCS file: %s", " ".join(args)) - result = subprocess.run(args=args, capture_output=True, text=True, check=True) + try: + result = subprocess.run(args=args, capture_output=True, text=True, check=True) + except subprocess.CalledProcessError as e: + print("Error: %s" % e.stderr) + raise e return result.stdout From 3002ff46373763c1b4787cd02887e79062bc5e18 Mon Sep 17 00:00:00 2001 From: "firebase-workflow-trigger[bot]" <80733318+firebase-workflow-trigger[bot]@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:22:06 +0000 Subject: [PATCH 13/14] Update mobile dependencies - Thu Aug 03 2023 (#1413) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update mobile dependencies - Thu Aug 03 2023 ### Android - com.google.firebase.firebase_bom → 32.2.2 ### iOS - Firebase/Analytics → 10.13.0 - Firebase/AppCheck → 10.13.0 - Firebase/Auth → 10.13.0 - Firebase/Core → 10.13.0 - Firebase/CoreOnly → 10.13.0 - Firebase/Crashlytics → 10.13.0 - Firebase/Database → 10.13.0 - Firebase/DynamicLinks → 10.13.0 - Firebase/Firestore → 10.13.0 - Firebase/Functions → 10.13.0 - Firebase/Installations → 10.13.0 - Firebase/Messaging → 10.13.0 - Firebase/RemoteConfig → 10.13.0 - Firebase/Storage → 10.13.0 - Google-Mobile-Ads-SDK → 10.9.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/5755777170). * Ensure using a Swift bridging header that supports both arm64 and x86_64. * Add release note about i386 no longer being supported. * Remove armv7 as well. --------- Co-authored-by: firebase-workflow-trigger-bot Co-authored-by: Jon Simantov Co-authored-by: almostmatt@google.com --- .github/workflows/update-dependencies.yml | 2 +- Android/firebase_dependencies.gradle | 2 +- analytics/integration_test/Podfile | 4 +- analytics/ios_headers/FIREventNames.h | 2 +- analytics/ios_headers/FIRParameterNames.h | 2 +- analytics/ios_headers/FIRUserPropertyNames.h | 2 +- app/app_resources/build.gradle | 2 +- app/google_api_resources/build.gradle | 2 +- app/integration_test/Podfile | 2 +- app/invites_resources/build.gradle | 2 +- app/src/tests/runner/ios/Info.plist | 4 +- app_check/app_check_resources/build.gradle | 2 +- app_check/integration_test/Podfile | 20 +- auth/auth_resources/build.gradle | 2 +- auth/integration_test/Podfile | 4 +- build_scripts/ios/Info.plist | 8 +- build_scripts/ios/build.sh | 24 +- build_scripts/tvos/Info_ios_and_tvos.plist | 6 +- build_scripts/tvos/build.sh | 2 +- cmake/external/firestore.cmake | 2 +- database/database_resources/build.gradle | 2 +- database/integration_test/Podfile | 8 +- dynamic_links/integration_test/Podfile | 2 +- firestore/firestore_resources/build.gradle | 2 +- firestore/integration_test/Podfile | 8 +- firestore/integration_test_internal/Podfile | 8 +- functions/integration_test/Podfile | 8 +- gma/gma_resources/build.gradle | 2 +- gma/integration_test/Podfile | 4 +- installations/integration_test/Podfile | 4 +- ios_pod/Podfile | 28 +- .../FirebaseAnalyticsSwift-Swift.h | 523 ++++-- .../FirebaseCoreInternal-Swift.h | 581 +++++-- .../FirebaseDatabaseSwift-Swift.h | 529 ++++-- .../FirebaseFirestoreSwift-Swift.h | 553 ++++-- .../swift_headers/FirebaseFunctions-Swift.h | 930 +++++++--- .../FirebaseInAppMessagingSwift-Swift.h | 524 ++++-- .../FirebaseMLModelDownloader-Swift.h | 527 ++++-- .../FirebaseRemoteConfigSwift-Swift.h | 529 ++++-- .../swift_headers/FirebaseSharedSwift-Swift.h | 523 ++++-- ios_pod/swift_headers/FirebaseStorage-Swift.h | 1505 +++++++++++++---- ios_pod/swift_headers/SwiftProtobuf-Swift.h | 523 ++++-- messaging/integration_test/Podfile | 4 +- messaging/messaging_java/build.gradle | 2 +- .../Android/firebase_dependencies.gradle | 2 +- release_build_files/readme.md | 75 +- remote_config/integration_test/Podfile | 4 +- .../remote_config_resources/build.gradle | 2 +- scripts/gha/build_ios_tvos.py | 34 +- .../gameloop_apple/gameloop/Info.plist | 2 +- .../FirebaseCppUITestApp/Info.plist | 2 +- storage/integration_test/Podfile | 8 +- storage/storage_resources/build.gradle | 2 +- 53 files changed, 5770 insertions(+), 1786 deletions(-) diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml index 9ce467996d..f40aa5743d 100644 --- a/.github/workflows/update-dependencies.yml +++ b/.github/workflows/update-dependencies.yml @@ -142,7 +142,7 @@ jobs: cd - # Copy all *-Swift.h header files into ios_pod/swift_headers/ echo "Copying headers..." - find "${ziptmp}" -name '*-Swift.h' -print0 | xargs -0 -n 1 -J REPLACETEXT cp -f REPLACETEXT ios_pod/swift_headers/ + find "${ziptmp}" -name '*-Swift.h' -path '*ios*arm64*x86_64*simulator*' -print0 | xargs -0 -n 1 -J REPLACETEXT cp -f REPLACETEXT ios_pod/swift_headers/ copyright_line="// Copyright $(date +%Y) Google LLC" # Add a note to each file about its source. for ios_header in ios_pod/swift_headers/*.h; do diff --git a/Android/firebase_dependencies.gradle b/Android/firebase_dependencies.gradle index a2f751f0a2..2481bd4c38 100644 --- a/Android/firebase_dependencies.gradle +++ b/Android/firebase_dependencies.gradle @@ -158,7 +158,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') } for (String lib : firebaseCpp.dependencies.libSet) { // Generate and include the proguard file diff --git a/analytics/integration_test/Podfile b/analytics/integration_test/Podfile index 31bec9d850..2bd2ef9ca3 100644 --- a/analytics/integration_test/Podfile +++ b/analytics/integration_test/Podfile @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Analytics', '10.12.0' + pod 'Firebase/Analytics', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Analytics', '10.12.0' + pod 'Firebase/Analytics', '10.13.0' end post_install do |installer| diff --git a/analytics/ios_headers/FIREventNames.h b/analytics/ios_headers/FIREventNames.h index 9d677883f0..317bfab42d 100644 --- a/analytics/ios_headers/FIREventNames.h +++ b/analytics/ios_headers/FIREventNames.h @@ -1,6 +1,6 @@ // Copyright 2023 Google LLC -// Copied from Firebase Analytics iOS SDK 10.12.0. +// Copied from Firebase Analytics iOS SDK 10.13.0. /// @file FIREventNames.h /// diff --git a/analytics/ios_headers/FIRParameterNames.h b/analytics/ios_headers/FIRParameterNames.h index 65f7e3ea7c..c6664d14f7 100644 --- a/analytics/ios_headers/FIRParameterNames.h +++ b/analytics/ios_headers/FIRParameterNames.h @@ -1,6 +1,6 @@ // Copyright 2023 Google LLC -// Copied from Firebase Analytics iOS SDK 10.12.0. +// Copied from Firebase Analytics iOS SDK 10.13.0. /// @file FIRParameterNames.h /// diff --git a/analytics/ios_headers/FIRUserPropertyNames.h b/analytics/ios_headers/FIRUserPropertyNames.h index 935289b468..00851e1395 100644 --- a/analytics/ios_headers/FIRUserPropertyNames.h +++ b/analytics/ios_headers/FIRUserPropertyNames.h @@ -1,6 +1,6 @@ // Copyright 2023 Google LLC -// Copied from Firebase Analytics iOS SDK 10.12.0. +// Copied from Firebase Analytics iOS SDK 10.13.0. /// @file FIRUserPropertyNames.h /// diff --git a/app/app_resources/build.gradle b/app/app_resources/build.gradle index f0d956e39c..6fecf213be 100644 --- a/app/app_resources/build.gradle +++ b/app/app_resources/build.gradle @@ -50,7 +50,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' } diff --git a/app/google_api_resources/build.gradle b/app/google_api_resources/build.gradle index 721547e028..f299d7ac6a 100644 --- a/app/google_api_resources/build.gradle +++ b/app/google_api_resources/build.gradle @@ -53,7 +53,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-base:18.2.0' implementation project(':app:app_resources') diff --git a/app/integration_test/Podfile b/app/integration_test/Podfile index 68829105b6..d0c27722ff 100644 --- a/app/integration_test/Podfile +++ b/app/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '11.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '10.12.0' + pod 'Firebase/Analytics', '10.13.0' end post_install do |installer| diff --git a/app/invites_resources/build.gradle b/app/invites_resources/build.gradle index 3e906204d9..90e7eaa71e 100644 --- a/app/invites_resources/build.gradle +++ b/app/invites_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-dynamic-links' implementation project(':app:app_resources') diff --git a/app/src/tests/runner/ios/Info.plist b/app/src/tests/runner/ios/Info.plist index 7b5e300a2b..a71b32aedb 100644 --- a/app/src/tests/runner/ios/Info.plist +++ b/app/src/tests/runner/ios/Info.plist @@ -30,7 +30,7 @@ Main UIRequiredDeviceCapabilities - armv7 + arm64 UISupportedInterfaceOrientations @@ -46,4 +46,4 @@ UIInterfaceOrientationLandscapeRight - \ No newline at end of file + diff --git a/app_check/app_check_resources/build.gradle b/app_check/app_check_resources/build.gradle index 29f4663f6e..56fd0ab30a 100644 --- a/app_check/app_check_resources/build.gradle +++ b/app_check/app_check_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-appcheck' } diff --git a/app_check/integration_test/Podfile b/app_check/integration_test/Podfile index 23b6635378..a809bb6f62 100644 --- a/app_check/integration_test/Podfile +++ b/app_check/integration_test/Podfile @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/AppCheck', '10.12.0' - pod 'Firebase/Database', '10.12.0' - pod 'Firebase/Auth', '10.12.0' - pod 'Firebase/Storage', '10.12.0' - pod 'Firebase/Functions', '10.12.0' + pod 'Firebase/AppCheck', '10.13.0' + pod 'Firebase/Database', '10.13.0' + pod 'Firebase/Auth', '10.13.0' + pod 'Firebase/Storage', '10.13.0' + pod 'Firebase/Functions', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/AppCheck', '10.12.0' - pod 'Firebase/Database', '10.12.0' - pod 'Firebase/Auth', '10.12.0' - pod 'Firebase/Storage', '10.12.0' - pod 'Firebase/Functions', '10.12.0' + pod 'Firebase/AppCheck', '10.13.0' + pod 'Firebase/Database', '10.13.0' + pod 'Firebase/Auth', '10.13.0' + pod 'Firebase/Storage', '10.13.0' + pod 'Firebase/Functions', '10.13.0' end post_install do |installer| diff --git a/auth/auth_resources/build.gradle b/auth/auth_resources/build.gradle index 2a39b9b0a1..1f5801963e 100644 --- a/auth/auth_resources/build.gradle +++ b/auth/auth_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-auth' implementation project(':app:app_resources') diff --git a/auth/integration_test/Podfile b/auth/integration_test/Podfile index 30d8c003c4..0a7cf70936 100644 --- a/auth/integration_test/Podfile +++ b/auth/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Auth', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Auth', '10.13.0' end post_install do |installer| diff --git a/build_scripts/ios/Info.plist b/build_scripts/ios/Info.plist index 92f3bb83db..ba4d5c05b0 100644 --- a/build_scripts/ios/Info.plist +++ b/build_scripts/ios/Info.plist @@ -6,13 +6,12 @@ LibraryIdentifier - ios-arm64_i386_x86_64-simulator + ios-arm64_x86_64-simulator LibraryPath LIBRARY_PATH SupportedArchitectures arm64 - i386 x86_64 SupportedPlatform @@ -22,13 +21,12 @@ LibraryIdentifier - ios-arm64_armv7 + ios-arm64 LibraryPath LIBRARY_PATH SupportedArchitectures arm64 - armv7 SupportedPlatform ios @@ -39,4 +37,4 @@ XCFrameworkFormatVersion 1.0 - \ No newline at end of file + diff --git a/build_scripts/ios/build.sh b/build_scripts/ios/build.sh index 95d134a23d..12ac66e93b 100755 --- a/build_scripts/ios/build.sh +++ b/build_scripts/ios/build.sh @@ -3,7 +3,7 @@ # Copyright 2020 Google LLC # # Script to build iOS XCFrameworks -# If built for all architectures (arm64 armv7 x86_64 i386), +# If built for all architectures (arm64 x86_64), # it will build universal framework as well # @@ -24,9 +24,9 @@ usage(){ set -e readonly SUPPORTED_PLATFORMS=(device simulator) -readonly SUPPORTED_ARCHITECTURES=(arm64 armv7 x86_64 i386) -readonly DEVICE_ARCHITECTURES=(arm64 armv7) -readonly SIMULATOR_ARCHITECTURES=(arm64 x86_64 i386) +readonly SUPPORTED_ARCHITECTURES=(arm64 x86_64) +readonly DEVICE_ARCHITECTURES=(arm64) +readonly SIMULATOR_ARCHITECTURES=(arm64 x86_64) readonly SUPPORTED_TARGETS=(firebase_analytics firebase_auth firebase_app_check firebase_database firebase_dynamic_links firebase_firestore firebase_functions firebase_gma firebase_installations firebase_messaging firebase_remote_config firebase_storage) # build default value @@ -198,7 +198,7 @@ if ${cmakeBuild}; then done done - # if we built for all architectures (arm64 armv7 x86_64 i386) + # if we built for all architectures (arm64 x86_64) # build universal framework as well if [[ ${#architectures[@]} < ${#SUPPORTED_ARCHITECTURES[@]} ]]; then exit 0 @@ -209,8 +209,6 @@ if ${cmakeBuild}; then mkdir -p universal/${target}.framework libsubpath="${target}.framework/${target}" lipo -create "device-arm64/${libsubpath}" \ - "device-armv7/${libsubpath}" \ - "simulator-i386/${libsubpath}" \ "simulator-x86_64/${libsubpath}" \ -output "universal/${libsubpath}" done @@ -228,17 +226,15 @@ if ${cmakeBuild}; then for target in ${targets[@]}; do libsubpath="${target}.framework/${target}" if [[ "${platform}" == "device" ]]; then - outputdir="${xcframeworkspath}/${target}.xcframework/ios-arm64_armv7/${target}.framework" + outputdir="${xcframeworkspath}/${target}.xcframework/ios-arm64/${target}.framework" mkdir -p ${outputdir} lipo -create "${frameworkspath}/device-arm64/${libsubpath}" \ - "${frameworkspath}/device-armv7/${libsubpath}" \ -output "${outputdir}/${target}" elif [[ "${platform}" == "simulator" ]]; then - outputdir="${xcframeworkspath}/${target}.xcframework/ios-arm64_i386_x86_64-simulator/${target}.framework" + outputdir="${xcframeworkspath}/${target}.xcframework/ios-arm64_x86_64-simulator/${target}.framework" mkdir -p ${outputdir} lipo -create "${frameworkspath}/simulator-arm64/${libsubpath}" \ - "${frameworkspath}/simulator-i386/${libsubpath}" \ "${frameworkspath}/simulator-x86_64/${libsubpath}" \ -output "${outputdir}/${target}" fi @@ -252,11 +248,11 @@ if ${cmakeBuild}; then done # create Headers for xcframework - if [[ ! -d "${xcframeworkspath}/firebase.xcframework/ios-arm64_armv7/firebase.framework/Headers" ]]; then + if [[ ! -d "${xcframeworkspath}/firebase.xcframework/ios-arm64/firebase.framework/Headers" ]]; then cp -R ${frameworkspath}/device-arm64/firebase.framework/Headers \ - ${xcframeworkspath}/firebase.xcframework/ios-arm64_armv7/firebase.framework/Headers + ${xcframeworkspath}/firebase.xcframework/ios-arm64/firebase.framework/Headers cp -R ${frameworkspath}/device-arm64/firebase.framework/Headers \ - ${xcframeworkspath}/firebase.xcframework/ios-arm64_i386_x86_64-simulator/firebase.framework/Headers + ${xcframeworkspath}/firebase.xcframework/ios-arm64_x86_64-simulator/firebase.framework/Headers fi echo "xcframeworks build end & ready to use" fi diff --git a/build_scripts/tvos/Info_ios_and_tvos.plist b/build_scripts/tvos/Info_ios_and_tvos.plist index 9095d8a567..0cb263b90d 100644 --- a/build_scripts/tvos/Info_ios_and_tvos.plist +++ b/build_scripts/tvos/Info_ios_and_tvos.plist @@ -6,13 +6,12 @@ LibraryIdentifier - ios-arm64_i386_x86_64-simulator + ios-arm64_x86_64-simulator LibraryPath LIBRARY_PATH SupportedArchitectures arm64 - i386 x86_64 SupportedPlatform @@ -22,13 +21,12 @@ LibraryIdentifier - ios-arm64_armv7 + ios-arm64 LibraryPath LIBRARY_PATH SupportedArchitectures arm64 - armv7 SupportedPlatform ios diff --git a/build_scripts/tvos/build.sh b/build_scripts/tvos/build.sh index bf79551ad7..c47f93042d 100755 --- a/build_scripts/tvos/build.sh +++ b/build_scripts/tvos/build.sh @@ -200,7 +200,7 @@ if ${cmakeBuild}; then done done - # if we built for all architectures (arm64 armv7 x86_64 i386) + # if we built for all architectures (arm64 armv7 x86_64) # build universal framework as well if [[ ${#architectures[@]} < ${#SUPPORTED_ARCHITECTURES[@]} ]]; then exit 0 diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index b38c6beb3b..5715648693 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version CocoaPods-10.12.0) +set(version CocoaPods-10.13.0) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/database/database_resources/build.gradle b/database/database_resources/build.gradle index 4d7cdccedb..02b23cb111 100644 --- a/database/database_resources/build.gradle +++ b/database/database_resources/build.gradle @@ -45,7 +45,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' //implementation project(':app:app_resources') diff --git a/database/integration_test/Podfile b/database/integration_test/Podfile index bfbd81bc49..beea7f84d9 100644 --- a/database/integration_test/Podfile +++ b/database/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Database', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Database', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Database', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Database', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end post_install do |installer| diff --git a/dynamic_links/integration_test/Podfile b/dynamic_links/integration_test/Podfile index 7dfa40e9c8..9dff3be5be 100644 --- a/dynamic_links/integration_test/Podfile +++ b/dynamic_links/integration_test/Podfile @@ -4,7 +4,7 @@ platform :ios, '11.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/DynamicLinks', '10.12.0' + pod 'Firebase/DynamicLinks', '10.13.0' end post_install do |installer| diff --git a/firestore/firestore_resources/build.gradle b/firestore/firestore_resources/build.gradle index d559110b87..9f4bfd98ab 100644 --- a/firestore/firestore_resources/build.gradle +++ b/firestore/firestore_resources/build.gradle @@ -53,7 +53,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' } diff --git a/firestore/integration_test/Podfile b/firestore/integration_test/Podfile index eb8a2fe9ef..89a8007786 100644 --- a/firestore/integration_test/Podfile +++ b/firestore/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Firestore', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Firestore', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Firestore', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Firestore', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end post_install do |installer| diff --git a/firestore/integration_test_internal/Podfile b/firestore/integration_test_internal/Podfile index 7d87a571b6..3cbb9cce62 100644 --- a/firestore/integration_test_internal/Podfile +++ b/firestore/integration_test_internal/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Firestore', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Firestore', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Firestore', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Firestore', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end post_install do |installer| diff --git a/functions/integration_test/Podfile b/functions/integration_test/Podfile index aa8a3c7f5d..22ef139816 100644 --- a/functions/integration_test/Podfile +++ b/functions/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Functions', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Functions', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Functions', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Functions', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end post_install do |installer| diff --git a/gma/gma_resources/build.gradle b/gma/gma_resources/build.gradle index 8bf2bc611f..79dc1bb0a8 100644 --- a/gma/gma_resources/build.gradle +++ b/gma/gma_resources/build.gradle @@ -45,7 +45,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.android.gms:play-services-ads:22.2.0' } diff --git a/gma/integration_test/Podfile b/gma/integration_test/Podfile index 3943eeadd6..8f9a305cdf 100644 --- a/gma/integration_test/Podfile +++ b/gma/integration_test/Podfile @@ -4,8 +4,8 @@ platform :ios, '11.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/CoreOnly', '10.12.0' - pod 'Google-Mobile-Ads-SDK', '10.8.0' + pod 'Firebase/CoreOnly', '10.13.0' + pod 'Google-Mobile-Ads-SDK', '10.9.0' end post_install do |installer| diff --git a/installations/integration_test/Podfile b/installations/integration_test/Podfile index 7a73a24d5e..5c001d5b3a 100644 --- a/installations/integration_test/Podfile +++ b/installations/integration_test/Podfile @@ -4,8 +4,8 @@ platform :ios, '11.0' use_frameworks! :linkage => :static target 'integration_test' do - pod 'Firebase/Analytics', '10.12.0' - pod 'Firebase/Installations', '10.12.0' + pod 'Firebase/Analytics', '10.13.0' + pod 'Firebase/Installations', '10.13.0' end post_install do |installer| diff --git a/ios_pod/Podfile b/ios_pod/Podfile index f45fd75556..85d0daf610 100644 --- a/ios_pod/Podfile +++ b/ios_pod/Podfile @@ -3,20 +3,20 @@ platform :ios, '11.0' use_frameworks! target 'GetPods' do - pod 'Firebase/Core', '10.12.0' + pod 'Firebase/Core', '10.13.0' - pod 'Google-Mobile-Ads-SDK', '10.8.0' - pod 'Firebase/Analytics', '10.12.0' - pod 'Firebase/AppCheck', '10.12.0' - pod 'Firebase/Auth', '10.12.0' - pod 'Firebase/Crashlytics', '10.12.0' - pod 'Firebase/Database', '10.12.0' - pod 'Firebase/DynamicLinks', '10.12.0' - pod 'Firebase/Firestore', '10.12.0' - pod 'Firebase/Functions', '10.12.0' - pod 'Firebase/Installations', '10.12.0' - pod 'Firebase/Messaging', '10.12.0' - pod 'Firebase/RemoteConfig', '10.12.0' - pod 'Firebase/Storage', '10.12.0' + pod 'Google-Mobile-Ads-SDK', '10.9.0' + pod 'Firebase/Analytics', '10.13.0' + pod 'Firebase/AppCheck', '10.13.0' + pod 'Firebase/Auth', '10.13.0' + pod 'Firebase/Crashlytics', '10.13.0' + pod 'Firebase/Database', '10.13.0' + pod 'Firebase/DynamicLinks', '10.13.0' + pod 'Firebase/Firestore', '10.13.0' + pod 'Firebase/Functions', '10.13.0' + pod 'Firebase/Installations', '10.13.0' + pod 'Firebase/Messaging', '10.13.0' + pod 'Firebase/RemoteConfig', '10.13.0' + pod 'Firebase/Storage', '10.13.0' end diff --git a/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h b/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h index 4ef68a494a..75a6cfd445 100644 --- a/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseAnalyticsSwift-Swift.h @@ -1,246 +1,527 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASEANALYTICSSWIFT_SWIFT_H #define FIREBASEANALYTICSSWIFT_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseAnalyticsSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASEANALYTICSSWIFT_SWIFT_H +#define FIREBASEANALYTICSSWIFT_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else +#include +#include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +# define SWIFT_NORETURN #endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseAnalyticsSwift", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseAnalyticsSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h index 04f937100e..900a26353e 100644 --- a/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h +++ b/ios_pod/swift_headers/FirebaseCoreInternal-Swift.h @@ -1,207 +1,548 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASECOREINTERNAL_SWIFT_H #define FIREBASECOREINTERNAL_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseCoreInternal",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + +@class NSString; +@class FIRHeartbeatsPayload; + +/// An object that provides API to log and flush heartbeats from a synchronized storage container. +SWIFT_CLASS_NAMED("_ObjC_HeartbeatController") +@interface FIRHeartbeatController : NSObject +/// Public initializer. +/// \param id The id to associate this controller’s heartbeat storage with. +/// +- (nonnull instancetype)initWithId:(NSString * _Nonnull)id OBJC_DESIGNATED_INITIALIZER; +/// Asynchronously logs a new heartbeat, if needed. +/// note: +/// This API is thread-safe. +/// \param agent The string agent (i.e. Firebase User Agent) to associate the logged +/// heartbeat with. +/// +- (void)log:(NSString * _Nonnull)agent; +/// Synchronously flushes heartbeats from storage into a heartbeats payload. +/// note: +/// This API is thread-safe. +/// +/// returns: +/// A heartbeats payload for the flushed heartbeat(s). +- (FIRHeartbeatsPayload * _Nonnull)flush SWIFT_WARN_UNUSED_RESULT; +/// Synchronously flushes the heartbeat for today. +/// If no heartbeat was logged today, the returned payload is empty. +/// note: +/// This API is thread-safe. +/// +/// returns: +/// A heartbeats payload for the flushed heartbeat. +- (FIRHeartbeatsPayload * _Nonnull)flushHeartbeatFromToday SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// A model object representing a payload of heartbeat data intended for sending in network +/// requests. +SWIFT_CLASS_NAMED("_ObjC_HeartbeatsPayload") +@interface FIRHeartbeatsPayload : NSObject +/// Returns a processed payload string intended for use in a HTTP header. +/// +/// returns: +/// A string value from the heartbeats payload. +- (NSString * _Nonnull)headerValue SWIFT_WARN_UNUSED_RESULT; +/// A Boolean value indicating whether the payload is empty. +@property (nonatomic, readonly) BOOL isEmpty; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASECOREINTERNAL_SWIFT_H +#define FIREBASECOREINTERNAL_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else +#include +#include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +# define SWIFT_COMPILE_NAME(X) #endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT +#endif +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} #endif #endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" @@ -209,24 +550,25 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); @import ObjectiveC; #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseCoreInternal", generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseCoreInternal",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) + @class NSString; @class FIRHeartbeatsPayload; @@ -236,20 +578,21 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatController") /// Public initializer. /// \param id The id to associate this controller’s heartbeat storage with. /// -- (nonnull instancetype)initWithId:(NSString* _Nonnull)id OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithId:(NSString * _Nonnull)id OBJC_DESIGNATED_INITIALIZER; /// Asynchronously logs a new heartbeat, if needed. /// note: /// This API is thread-safe. -/// \param agent The string agent (i.e. Firebase User Agent) to associate the logged heartbeat with. +/// \param agent The string agent (i.e. Firebase User Agent) to associate the logged +/// heartbeat with. /// -- (void)log:(NSString* _Nonnull)agent; +- (void)log:(NSString * _Nonnull)agent; /// Synchronously flushes heartbeats from storage into a heartbeats payload. /// note: /// This API is thread-safe. /// /// returns: /// A heartbeats payload for the flushed heartbeat(s). -- (FIRHeartbeatsPayload* _Nonnull)flush SWIFT_WARN_UNUSED_RESULT; +- (FIRHeartbeatsPayload * _Nonnull)flush SWIFT_WARN_UNUSED_RESULT; /// Synchronously flushes the heartbeat for today. /// If no heartbeat was logged today, the returned payload is empty. /// note: @@ -257,11 +600,12 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatController") /// /// returns: /// A heartbeats payload for the flushed heartbeat. -- (FIRHeartbeatsPayload* _Nonnull)flushHeartbeatFromToday SWIFT_WARN_UNUSED_RESULT; +- (FIRHeartbeatsPayload * _Nonnull)flushHeartbeatFromToday SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end + /// A model object representing a payload of heartbeat data intended for sending in network /// requests. SWIFT_CLASS_NAMED("_ObjC_HeartbeatsPayload") @@ -270,15 +614,22 @@ SWIFT_CLASS_NAMED("_ObjC_HeartbeatsPayload") /// /// returns: /// A string value from the heartbeats payload. -- (NSString* _Nonnull)headerValue SWIFT_WARN_UNUSED_RESULT; +- (NSString * _Nonnull)headerValue SWIFT_WARN_UNUSED_RESULT; /// A Boolean value indicating whether the payload is empty. -@property(nonatomic, readonly) BOOL isEmpty; +@property (nonatomic, readonly) BOOL isEmpty; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h b/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h index 6e0deec083..6858831af3 100644 --- a/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseDatabaseSwift-Swift.h @@ -1,246 +1,533 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASEDATABASESWIFT_SWIFT_H #define FIREBASEDATABASESWIFT_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseDatabaseSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + + + +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASEDATABASESWIFT_SWIFT_H +#define FIREBASEDATABASESWIFT_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +#include +#include +#include #endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT +#endif +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} #endif #endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseDatabaseSwift", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseDatabaseSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) + + + +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h b/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h index 263646d1ad..4a0c82b7e6 100644 --- a/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseFirestoreSwift-Swift.h @@ -1,246 +1,557 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASEFIRESTORESWIFT_SWIFT_H #define FIREBASEFIRESTORESWIFT_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction #endif #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseFirestoreSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + + + + + + + + + + + + + + + +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASEFIRESTORESWIFT_SWIFT_H +#define FIREBASEFIRESTORESWIFT_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +#include +#include +#include #endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT +#endif +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} #endif #endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseFirestoreSwift", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseFirestoreSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) + + + + + + + + + + + + + + + +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseFunctions-Swift.h b/ios_pod/swift_headers/FirebaseFunctions-Swift.h index 4cbd092ca8..30701d8af1 100644 --- a/ios_pod/swift_headers/FirebaseFunctions-Swift.h +++ b/ios_pod/swift_headers/FirebaseFunctions-Swift.h @@ -1,207 +1,726 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASEFUNCTIONS_SWIFT_H #define FIREBASEFUNCTIONS_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import Foundation; +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseFunctions",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +@class FIRApp; +@class NSString; +@class FIRHTTPSCallable; +@class FIRHTTPSCallableOptions; +@class NSURL; + +/// Functions is the client for Cloud Functions for a Firebase project. +SWIFT_CLASS_NAMED("Functions") +@interface FIRFunctions : NSObject +/// Creates a Cloud Functions client using the default or returns a pre-existing instance if it already exists. +/// +/// returns: +/// A shared Functions instance initialized with the default FirebaseApp. ++ (FIRFunctions * _Nonnull)functions SWIFT_WARN_UNUSED_RESULT; +/// Creates a Cloud Functions client with the given app, or returns a pre-existing +/// instance if one already exists. +/// \param app The app for the Firebase project. +/// +/// +/// returns: +/// A shared Functions instance initialized with the specified FirebaseApp. ++ (FIRFunctions * _Nonnull)functionsForApp:(FIRApp * _Nonnull)app SWIFT_WARN_UNUSED_RESULT; +/// Creates a Cloud Functions client with the default app and given region. +/// \param region The region for the HTTP trigger, such as us-central1. +/// +/// +/// returns: +/// A shared Functions instance initialized with the default FirebaseApp and a custom region. ++ (FIRFunctions * _Nonnull)functionsForRegion:(NSString * _Nonnull)region SWIFT_WARN_UNUSED_RESULT; +/// Creates a Cloud Functions client with the given app and region, or returns a pre-existing +/// instance if one already exists. +/// \param customDomain A custom domain for the HTTP trigger, such as “https //mydomain.com”. +/// +/// +/// returns: +/// A shared Functions instance initialized with the default FirebaseApp and a custom HTTP trigger domain. ++ (FIRFunctions * _Nonnull)functionsForCustomDomain:(NSString * _Nonnull)customDomain SWIFT_WARN_UNUSED_RESULT; +/// Creates a Cloud Functions client with the given app and region, or returns a pre-existing +/// instance if one already exists. +/// \param app The app for the Firebase project. +/// +/// \param region The region for the HTTP trigger, such as us-central1. +/// +/// +/// returns: +/// An instance of Functions with a custom app and region. ++ (FIRFunctions * _Nonnull)functionsForApp:(FIRApp * _Nonnull)app region:(NSString * _Nonnull)region SWIFT_WARN_UNUSED_RESULT; +/// Creates a Cloud Functions client with the given app and region, or returns a pre-existing +/// instance if one already exists. +/// \param app The app for the Firebase project. +/// +/// \param customDomain A custom domain for the HTTP trigger, such as https://mydomain.com. +/// +/// +/// returns: +/// An instance of Functions with a custom app and HTTP trigger domain. ++ (FIRFunctions * _Nonnull)functionsForApp:(FIRApp * _Nonnull)app customDomain:(NSString * _Nonnull)customDomain SWIFT_WARN_UNUSED_RESULT; +/// Creates a reference to the Callable HTTPS trigger with the given name. +/// \param name The name of the Callable HTTPS trigger. +/// +/// +/// returns: +/// A reference to a Callable HTTPS trigger. +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT; +/// Creates a reference to the Callable HTTPS trigger with the given name and configuration +/// options. +/// \param name The name of the Callable HTTPS trigger. +/// +/// \param options The options with which to customize the Callable HTTPS trigger. +/// +/// +/// returns: +/// A reference to a Callable HTTPS trigger. +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithName:(NSString * _Nonnull)name options:(FIRHTTPSCallableOptions * _Nonnull)options SWIFT_WARN_UNUSED_RESULT; +/// Creates a reference to the Callable HTTPS trigger with the given name. +/// \param url The URL of the Callable HTTPS trigger. +/// +/// +/// returns: +/// A reference to a Callable HTTPS trigger. +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithURL:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// Creates a reference to the Callable HTTPS trigger with the given name and configuration +/// options. +/// \param url The URL of the Callable HTTPS trigger. +/// +/// \param options The options with which to customize the Callable HTTPS trigger. +/// +/// +/// returns: +/// A reference to a Callable HTTPS trigger. +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithURL:(NSURL * _Nonnull)url options:(FIRHTTPSCallableOptions * _Nonnull)options SWIFT_WARN_UNUSED_RESULT; +/// Changes this instance to point to a Cloud Functions emulator running locally. +/// See https://firebase.google.com/docs/functions/local-emulator +/// \param host The host of the local emulator, such as “localhost”. +/// +/// \param port The port of the local emulator, for example 5005. +/// +- (void)useEmulatorWithHost:(NSString * _Nonnull)host port:(NSInteger)port; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +/// The set of error status codes that can be returned from a Callable HTTPS tigger. These are the +/// canonical error codes for Google APIs, as documented here: +/// https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto#L26 +typedef SWIFT_ENUM_NAMED(NSInteger, FIRFunctionsErrorCode, "FunctionsErrorCode", open) { +/// The operation completed successfully. + FIRFunctionsErrorCodeOK = 0, +/// The operation was cancelled (typically by the caller). + FIRFunctionsErrorCodeCancelled = 1, +/// Unknown error or an error from a different error domain. + FIRFunctionsErrorCodeUnknown = 2, +/// Client specified an invalid argument. Note that this differs from FailedPrecondition. +/// InvalidArgument indicates arguments that are problematic regardless of the state of the +/// system (e.g., an invalid field name). + FIRFunctionsErrorCodeInvalidArgument = 3, +/// Deadline expired before operation could complete. For operations that change the state of the +/// system, this error may be returned even if the operation has completed successfully. For +/// example, a successful response from a server could have been delayed long enough for the +/// deadline to expire. + FIRFunctionsErrorCodeDeadlineExceeded = 4, +/// Some requested document was not found. + FIRFunctionsErrorCodeNotFound = 5, +/// Some document that we attempted to create already exists. + FIRFunctionsErrorCodeAlreadyExists = 6, +/// The caller does not have permission to execute the specified operation. + FIRFunctionsErrorCodePermissionDenied = 7, +/// Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system +/// is out of space. + FIRFunctionsErrorCodeResourceExhausted = 8, +/// Operation was rejected because the system is not in a state required for the operation’s +/// execution. + FIRFunctionsErrorCodeFailedPrecondition = 9, +/// The operation was aborted, typically due to a concurrency issue like transaction aborts, etc. + FIRFunctionsErrorCodeAborted = 10, +/// Operation was attempted past the valid range. + FIRFunctionsErrorCodeOutOfRange = 11, +/// Operation is not implemented or not supported/enabled. + FIRFunctionsErrorCodeUnimplemented = 12, +/// Internal errors. Means some invariant expected by underlying system has been broken. If you +/// see one of these errors, something is very broken. + FIRFunctionsErrorCodeInternal = 13, +/// The service is currently unavailable. This is a most likely a transient condition and may be +/// corrected by retrying with a backoff. + FIRFunctionsErrorCodeUnavailable = 14, +/// Unrecoverable data loss or corruption. + FIRFunctionsErrorCodeDataLoss = 15, +/// The request does not have valid authentication credentials for the operation. + FIRFunctionsErrorCodeUnauthenticated = 16, +}; + +@class FIRHTTPSCallableResult; + +/// A HTTPSCallable is a reference to a particular Callable HTTPS trigger in Cloud Functions. +SWIFT_CLASS_NAMED("HTTPSCallable") +@interface FIRHTTPSCallable : NSObject +/// The timeout to use when calling the function. Defaults to 70 seconds. +@property (nonatomic) NSTimeInterval timeoutInterval; +/// Executes this Callable HTTPS trigger asynchronously. +/// The data passed into the trigger can be any of the following types: +///
    +///
  • +/// nil or NSNull +///
  • +///
  • +/// String +///
  • +///
  • +/// NSNumber, or any Swift numeric type bridgeable to NSNumber +///
  • +///
  • +/// [Any], where the contained objects are also one of these types. +///
  • +///
  • +/// [String: Any] where the values are also one of these types. +///
  • +///
+/// The request to the Cloud Functions backend made by this method automatically includes a +/// Firebase Installations ID token to identify the app instance. If a user is logged in with +/// Firebase Auth, an auth ID token for the user is also automatically included. +/// Firebase Cloud Messaging sends data to the Firebase backend periodically to collect information +/// regarding the app instance. To stop this, see Messaging.deleteData(). It +/// resumes with a new FCM Token the next time you call this method. +/// \param data Parameters to pass to the trigger. +/// +/// \param completion The block to call when the HTTPS request has completed. +/// +- (void)callWithObject:(id _Nullable)data completion:(void (^ _Nonnull)(FIRHTTPSCallableResult * _Nullable, NSError * _Nullable))completion; +/// Executes this Callable HTTPS trigger asynchronously. This API should only be used from Objective-C. +/// The request to the Cloud Functions backend made by this method automatically includes a +/// Firebase Installations ID token to identify the app instance. If a user is logged in with +/// Firebase Auth, an auth ID token for the user is also automatically included. +/// Firebase Cloud Messaging sends data to the Firebase backend periodically to collect information +/// regarding the app instance. To stop this, see Messaging.deleteData(). It +/// resumes with a new FCM Token the next time you call this method. +/// \param completion The block to call when the HTTPS request has completed. +/// +- (void)callWithCompletion:(void (^ _Nonnull)(FIRHTTPSCallableResult * _Nullable, NSError * _Nullable))completion; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// Configuration options for a HTTPSCallable instance. +SWIFT_CLASS_NAMED("HTTPSCallableOptions") +@interface FIRHTTPSCallableOptions : NSObject +/// Whether or not to protect the callable function with a limited-use App Check token. +@property (nonatomic, readonly) BOOL requireLimitedUseAppCheckTokens; +/// Designated initializer. +/// \param requireLimitedUseAppCheckTokens A boolean used to decide whether or not to +/// protect the callable function with a limited use App Check token. +/// +- (nonnull instancetype)initWithRequireLimitedUseAppCheckTokens:(BOOL)requireLimitedUseAppCheckTokens OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// A HTTPSCallableResult contains the result of calling a HTTPSCallable. +SWIFT_CLASS_NAMED("HTTPSCallableResult") +@interface FIRHTTPSCallableResult : NSObject +/// The data that was returned from the Callable HTTPS trigger. +/// The data is in the form of native objects. For example, if your trigger returned an +/// array, this object would be an Array. If your trigger returned a JavaScript object with +/// keys and values, this object would be an instance of [String: Any]. +@property (nonatomic, readonly) id _Nonnull data; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASEFUNCTIONS_SWIFT_H +#define FIREBASEFUNCTIONS_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +#include +#include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA #endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" @@ -210,24 +729,24 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); @import ObjectiveC; #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseFunctions", generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseFunctions",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) @class FIRApp; @class NSString; @class FIRHTTPSCallable; @@ -237,38 +756,34 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); /// Functions is the client for Cloud Functions for a Firebase project. SWIFT_CLASS_NAMED("Functions") @interface FIRFunctions : NSObject -/// Creates a Cloud Functions client using the default or returns a pre-existing instance if it -/// already exists. +/// Creates a Cloud Functions client using the default or returns a pre-existing instance if it already exists. /// /// returns: /// A shared Functions instance initialized with the default FirebaseApp. -+ (FIRFunctions* _Nonnull)functions SWIFT_WARN_UNUSED_RESULT; ++ (FIRFunctions * _Nonnull)functions SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app, or returns a pre-existing /// instance if one already exists. -/// \param app The app for the Firebase project. +/// \param app The app for the Firebase project. /// /// /// returns: /// A shared Functions instance initialized with the specified FirebaseApp. -+ (FIRFunctions* _Nonnull)functionsForApp:(FIRApp* _Nonnull)app SWIFT_WARN_UNUSED_RESULT; ++ (FIRFunctions * _Nonnull)functionsForApp:(FIRApp * _Nonnull)app SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the default app and given region. /// \param region The region for the HTTP trigger, such as us-central1. /// /// /// returns: -/// A shared Functions instance initialized with the default FirebaseApp and a custom -/// region. -+ (FIRFunctions* _Nonnull)functionsForRegion:(NSString* _Nonnull)region SWIFT_WARN_UNUSED_RESULT; +/// A shared Functions instance initialized with the default FirebaseApp and a custom region. ++ (FIRFunctions * _Nonnull)functionsForRegion:(NSString * _Nonnull)region SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app and region, or returns a pre-existing /// instance if one already exists. /// \param customDomain A custom domain for the HTTP trigger, such as “https //mydomain.com”. /// /// /// returns: -/// A shared Functions instance initialized with the default FirebaseApp and a custom -/// HTTP trigger domain. -+ (FIRFunctions* _Nonnull)functionsForCustomDomain:(NSString* _Nonnull)customDomain - SWIFT_WARN_UNUSED_RESULT; +/// A shared Functions instance initialized with the default FirebaseApp and a custom HTTP trigger domain. ++ (FIRFunctions * _Nonnull)functionsForCustomDomain:(NSString * _Nonnull)customDomain SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app and region, or returns a pre-existing /// instance if one already exists. /// \param app The app for the Firebase project. @@ -278,29 +793,26 @@ SWIFT_CLASS_NAMED("Functions") /// /// returns: /// An instance of Functions with a custom app and region. -+ (FIRFunctions* _Nonnull)functionsForApp:(FIRApp* _Nonnull)app - region:(NSString* _Nonnull)region SWIFT_WARN_UNUSED_RESULT; ++ (FIRFunctions * _Nonnull)functionsForApp:(FIRApp * _Nonnull)app region:(NSString * _Nonnull)region SWIFT_WARN_UNUSED_RESULT; /// Creates a Cloud Functions client with the given app and region, or returns a pre-existing /// instance if one already exists. -/// \param app The app for the Firebase project. +/// \param app The app for the Firebase project. /// -/// \param customDomain A custom domain for the HTTP trigger, such as -/// https://mydomain.com. +/// \param customDomain A custom domain for the HTTP trigger, such as https://mydomain.com. /// /// /// returns: /// An instance of Functions with a custom app and HTTP trigger domain. -+ (FIRFunctions* _Nonnull)functionsForApp:(FIRApp* _Nonnull)app - customDomain:(NSString* _Nonnull)customDomain SWIFT_WARN_UNUSED_RESULT; ++ (FIRFunctions * _Nonnull)functionsForApp:(FIRApp * _Nonnull)app customDomain:(NSString * _Nonnull)customDomain SWIFT_WARN_UNUSED_RESULT; /// Creates a reference to the Callable HTTPS trigger with the given name. /// \param name The name of the Callable HTTPS trigger. /// /// /// returns: /// A reference to a Callable HTTPS trigger. -- (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithName:(NSString* _Nonnull)name - SWIFT_WARN_UNUSED_RESULT; -/// Creates a reference to the Callable HTTPS trigger with the given name and configuration options. +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithName:(NSString * _Nonnull)name SWIFT_WARN_UNUSED_RESULT; +/// Creates a reference to the Callable HTTPS trigger with the given name and configuration +/// options. /// \param name The name of the Callable HTTPS trigger. /// /// \param options The options with which to customize the Callable HTTPS trigger. @@ -308,17 +820,16 @@ SWIFT_CLASS_NAMED("Functions") /// /// returns: /// A reference to a Callable HTTPS trigger. -- (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithName:(NSString* _Nonnull)name - options:(FIRHTTPSCallableOptions* _Nonnull)options - SWIFT_WARN_UNUSED_RESULT; +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithName:(NSString * _Nonnull)name options:(FIRHTTPSCallableOptions * _Nonnull)options SWIFT_WARN_UNUSED_RESULT; /// Creates a reference to the Callable HTTPS trigger with the given name. /// \param url The URL of the Callable HTTPS trigger. /// /// /// returns: /// A reference to a Callable HTTPS trigger. -- (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithURL:(NSURL* _Nonnull)url SWIFT_WARN_UNUSED_RESULT; -/// Creates a reference to the Callable HTTPS trigger with the given name and configuration options. +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithURL:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// Creates a reference to the Callable HTTPS trigger with the given name and configuration +/// options. /// \param url The URL of the Callable HTTPS trigger. /// /// \param options The options with which to customize the Callable HTTPS trigger. @@ -326,16 +837,14 @@ SWIFT_CLASS_NAMED("Functions") /// /// returns: /// A reference to a Callable HTTPS trigger. -- (FIRHTTPSCallable* _Nonnull)HTTPSCallableWithURL:(NSURL* _Nonnull)url - options:(FIRHTTPSCallableOptions* _Nonnull)options - SWIFT_WARN_UNUSED_RESULT; +- (FIRHTTPSCallable * _Nonnull)HTTPSCallableWithURL:(NSURL * _Nonnull)url options:(FIRHTTPSCallableOptions * _Nonnull)options SWIFT_WARN_UNUSED_RESULT; /// Changes this instance to point to a Cloud Functions emulator running locally. /// See https://firebase.google.com/docs/functions/local-emulator /// \param host The host of the local emulator, such as “localhost”. /// /// \param port The port of the local emulator, for example 5005. /// -- (void)useEmulatorWithHost:(NSString* _Nonnull)host port:(NSInteger)port; +- (void)useEmulatorWithHost:(NSString * _Nonnull)host port:(NSInteger)port; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end @@ -343,65 +852,59 @@ SWIFT_CLASS_NAMED("Functions") /// The set of error status codes that can be returned from a Callable HTTPS tigger. These are the /// canonical error codes for Google APIs, as documented here: /// https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto#L26 -typedef SWIFT_ENUM_NAMED(NSInteger, FIRFunctionsErrorCode, "FunctionsErrorCode", open){ - /// The operation completed successfully. - FIRFunctionsErrorCodeOK = 0, - /// The operation was cancelled (typically by the caller). - FIRFunctionsErrorCodeCancelled = 1, - /// Unknown error or an error from a different error domain. - FIRFunctionsErrorCodeUnknown = 2, - /// Client specified an invalid argument. Note that this differs from - /// FailedPrecondition. - /// InvalidArgument indicates arguments that are problematic regardless of the - /// state of the - /// system (e.g., an invalid field name). - FIRFunctionsErrorCodeInvalidArgument = 3, - /// Deadline expired before operation could complete. For operations that change the state of - /// the - /// system, this error may be returned even if the operation has completed successfully. For - /// example, a successful response from a server could have been delayed long enough for the - /// deadline to expire. - FIRFunctionsErrorCodeDeadlineExceeded = 4, - /// Some requested document was not found. - FIRFunctionsErrorCodeNotFound = 5, - /// Some document that we attempted to create already exists. - FIRFunctionsErrorCodeAlreadyExists = 6, - /// The caller does not have permission to execute the specified operation. - FIRFunctionsErrorCodePermissionDenied = 7, - /// Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file - /// system - /// is out of space. - FIRFunctionsErrorCodeResourceExhausted = 8, - /// Operation was rejected because the system is not in a state required for the operation’s - /// execution. - FIRFunctionsErrorCodeFailedPrecondition = 9, - /// The operation was aborted, typically due to a concurrency issue like transaction aborts, - /// etc. - FIRFunctionsErrorCodeAborted = 10, - /// Operation was attempted past the valid range. - FIRFunctionsErrorCodeOutOfRange = 11, - /// Operation is not implemented or not supported/enabled. - FIRFunctionsErrorCodeUnimplemented = 12, - /// Internal errors. Means some invariant expected by underlying system has been broken. If you - /// see one of these errors, something is very broken. - FIRFunctionsErrorCodeInternal = 13, - /// The service is currently unavailable. This is a most likely a transient condition and may be - /// corrected by retrying with a backoff. - FIRFunctionsErrorCodeUnavailable = 14, - /// Unrecoverable data loss or corruption. - FIRFunctionsErrorCodeDataLoss = 15, - /// The request does not have valid authentication credentials for the operation. - FIRFunctionsErrorCodeUnauthenticated = 16, +typedef SWIFT_ENUM_NAMED(NSInteger, FIRFunctionsErrorCode, "FunctionsErrorCode", open) { +/// The operation completed successfully. + FIRFunctionsErrorCodeOK = 0, +/// The operation was cancelled (typically by the caller). + FIRFunctionsErrorCodeCancelled = 1, +/// Unknown error or an error from a different error domain. + FIRFunctionsErrorCodeUnknown = 2, +/// Client specified an invalid argument. Note that this differs from FailedPrecondition. +/// InvalidArgument indicates arguments that are problematic regardless of the state of the +/// system (e.g., an invalid field name). + FIRFunctionsErrorCodeInvalidArgument = 3, +/// Deadline expired before operation could complete. For operations that change the state of the +/// system, this error may be returned even if the operation has completed successfully. For +/// example, a successful response from a server could have been delayed long enough for the +/// deadline to expire. + FIRFunctionsErrorCodeDeadlineExceeded = 4, +/// Some requested document was not found. + FIRFunctionsErrorCodeNotFound = 5, +/// Some document that we attempted to create already exists. + FIRFunctionsErrorCodeAlreadyExists = 6, +/// The caller does not have permission to execute the specified operation. + FIRFunctionsErrorCodePermissionDenied = 7, +/// Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system +/// is out of space. + FIRFunctionsErrorCodeResourceExhausted = 8, +/// Operation was rejected because the system is not in a state required for the operation’s +/// execution. + FIRFunctionsErrorCodeFailedPrecondition = 9, +/// The operation was aborted, typically due to a concurrency issue like transaction aborts, etc. + FIRFunctionsErrorCodeAborted = 10, +/// Operation was attempted past the valid range. + FIRFunctionsErrorCodeOutOfRange = 11, +/// Operation is not implemented or not supported/enabled. + FIRFunctionsErrorCodeUnimplemented = 12, +/// Internal errors. Means some invariant expected by underlying system has been broken. If you +/// see one of these errors, something is very broken. + FIRFunctionsErrorCodeInternal = 13, +/// The service is currently unavailable. This is a most likely a transient condition and may be +/// corrected by retrying with a backoff. + FIRFunctionsErrorCodeUnavailable = 14, +/// Unrecoverable data loss or corruption. + FIRFunctionsErrorCodeDataLoss = 15, +/// The request does not have valid authentication credentials for the operation. + FIRFunctionsErrorCodeUnauthenticated = 16, }; @class FIRHTTPSCallableResult; -/// A HTTPSCallable is a reference to a particular Callable HTTPS trigger in Cloud -/// Functions. +/// A HTTPSCallable is a reference to a particular Callable HTTPS trigger in Cloud Functions. SWIFT_CLASS_NAMED("HTTPSCallable") @interface FIRHTTPSCallable : NSObject /// The timeout to use when calling the function. Defaults to 70 seconds. -@property(nonatomic) NSTimeInterval timeoutInterval; +@property (nonatomic) NSTimeInterval timeoutInterval; /// Executes this Callable HTTPS trigger asynchronously. /// The data passed into the trigger can be any of the following types: ///
    @@ -431,53 +934,58 @@ SWIFT_CLASS_NAMED("HTTPSCallable") /// /// \param completion The block to call when the HTTPS request has completed. /// -- (void)callWithObject:(id _Nullable)data - completion: - (void (^_Nonnull)(FIRHTTPSCallableResult* _Nullable, NSError* _Nullable))completion; -/// Executes this Callable HTTPS trigger asynchronously. This API should only be used from -/// Objective-C. The request to the Cloud Functions backend made by this method automatically -/// includes a Firebase Installations ID token to identify the app instance. If a user is logged in -/// with Firebase Auth, an auth ID token for the user is also automatically included. Firebase Cloud -/// Messaging sends data to the Firebase backend periodically to collect information regarding the -/// app instance. To stop this, see Messaging.deleteData(). It resumes with a new FCM -/// Token the next time you call this method. \param completion The block to call when the HTTPS -/// request has completed. -/// -- (void)callWithCompletion:(void (^_Nonnull)(FIRHTTPSCallableResult* _Nullable, - NSError* _Nullable))completion; +- (void)callWithObject:(id _Nullable)data completion:(void (^ _Nonnull)(FIRHTTPSCallableResult * _Nullable, NSError * _Nullable))completion; +/// Executes this Callable HTTPS trigger asynchronously. This API should only be used from Objective-C. +/// The request to the Cloud Functions backend made by this method automatically includes a +/// Firebase Installations ID token to identify the app instance. If a user is logged in with +/// Firebase Auth, an auth ID token for the user is also automatically included. +/// Firebase Cloud Messaging sends data to the Firebase backend periodically to collect information +/// regarding the app instance. To stop this, see Messaging.deleteData(). It +/// resumes with a new FCM Token the next time you call this method. +/// \param completion The block to call when the HTTPS request has completed. +/// +- (void)callWithCompletion:(void (^ _Nonnull)(FIRHTTPSCallableResult * _Nullable, NSError * _Nullable))completion; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end + /// Configuration options for a HTTPSCallable instance. SWIFT_CLASS_NAMED("HTTPSCallableOptions") @interface FIRHTTPSCallableOptions : NSObject /// Whether or not to protect the callable function with a limited-use App Check token. -@property(nonatomic, readonly) BOOL requireLimitedUseAppCheckTokens; +@property (nonatomic, readonly) BOOL requireLimitedUseAppCheckTokens; /// Designated initializer. /// \param requireLimitedUseAppCheckTokens A boolean used to decide whether or not to /// protect the callable function with a limited use App Check token. /// -- (nonnull instancetype)initWithRequireLimitedUseAppCheckTokens: - (BOOL)requireLimitedUseAppCheckTokens OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithRequireLimitedUseAppCheckTokens:(BOOL)requireLimitedUseAppCheckTokens OBJC_DESIGNATED_INITIALIZER; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end + /// A HTTPSCallableResult contains the result of calling a HTTPSCallable. SWIFT_CLASS_NAMED("HTTPSCallableResult") @interface FIRHTTPSCallableResult : NSObject /// The data that was returned from the Callable HTTPS trigger. /// The data is in the form of native objects. For example, if your trigger returned an -/// array, this object would be an Array. If your trigger returned a JavaScript -/// object with keys and values, this object would be an instance of [String: Any]. -@property(nonatomic, readonly) id _Nonnull data; +/// array, this object would be an Array. If your trigger returned a JavaScript object with +/// keys and values, this object would be an instance of [String: Any]. +@property (nonatomic, readonly) id _Nonnull data; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h b/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h index 4385483012..ce52b04787 100644 --- a/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseInAppMessagingSwift-Swift.h @@ -1,247 +1,527 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASEINAPPMESSAGINGSWIFT_SWIFT_H #define FIREBASEINAPPMESSAGINGSWIFT_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseInAppMessagingSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASEINAPPMESSAGINGSWIFT_SWIFT_H +#define FIREBASEINAPPMESSAGINGSWIFT_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else +#include +#include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +# define SWIFT_NORETURN #endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", \ - defined_in = "FirebaseInAppMessagingSwift", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseInAppMessagingSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h index 32272ef80a..b404b4e97b 100644 --- a/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h +++ b/ios_pod/swift_headers/FirebaseMLModelDownloader-Swift.h @@ -1,246 +1,531 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASEMLMODELDOWNLOADER_SWIFT_H #define FIREBASEMLMODELDOWNLOADER_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseMLModelDownloader",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + + +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASEMLMODELDOWNLOADER_SWIFT_H +#define FIREBASEMLMODELDOWNLOADER_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else +#include +#include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif #endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseMLModelDownloader", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseMLModelDownloader",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) + + +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h b/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h index e10f33c736..9d335c54d5 100644 --- a/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseRemoteConfigSwift-Swift.h @@ -1,246 +1,533 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASEREMOTECONFIGSWIFT_SWIFT_H #define FIREBASEREMOTECONFIGSWIFT_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseRemoteConfigSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) + + + +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASEREMOTECONFIGSWIFT_SWIFT_H +#define FIREBASEREMOTECONFIGSWIFT_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +#include +#include +#include #endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT +#endif +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} #endif #endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseRemoteConfigSwift", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseRemoteConfigSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) + + + +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h index b5a37ed830..5e028d4fde 100644 --- a/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h +++ b/ios_pod/swift_headers/FirebaseSharedSwift-Swift.h @@ -1,246 +1,527 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASESHAREDSWIFT_SWIFT_H #define FIREBASESHAREDSWIFT_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseSharedSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASESHAREDSWIFT_SWIFT_H +#define FIREBASESHAREDSWIFT_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else +#include +#include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +# define SWIFT_NORETURN #endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "FirebaseSharedSwift", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseSharedSwift",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/FirebaseStorage-Swift.h b/ios_pod/swift_headers/FirebaseStorage-Swift.h index 2ca8b040aa..f9e5c97b1d 100644 --- a/ios_pod/swift_headers/FirebaseStorage-Swift.h +++ b/ios_pod/swift_headers/FirebaseStorage-Swift.h @@ -1,207 +1,1062 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef FIREBASESTORAGE_SWIFT_H #define FIREBASESTORAGE_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else +#include #include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +#else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif +#else +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT +#endif +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import Dispatch; +@import Foundation; +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseStorage",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +@class NSString; +@class FIRApp; +@class FIRStorageReference; + +/// Firebase Storage is a service that supports uploading and downloading binary objects, +/// such as images, videos, and other files to Google Cloud Storage. Instances of Storage +/// are not thread-safe. +/// If you call Storage.storage(), the instance will initialize with the default FirebaseApp, +/// FirebaseApp.app(), and the storage location will come from the provided +/// GoogleService-Info.plist. +/// If you provide a custom instance of FirebaseApp, +/// the storage location will be specified via the FirebaseOptions.storageBucket property. +SWIFT_CLASS_NAMED("Storage") +@interface FIRStorage : NSObject +/// The default Storage instance. +/// +/// returns: +/// An instance of Storage, configured with the default FirebaseApp. ++ (FIRStorage * _Nonnull)storage SWIFT_WARN_UNUSED_RESULT; +/// A method used to create Storage instances initialized with a custom storage bucket URL. +/// Any StorageReferences generated from this instance of Storage will reference files +/// and directories within the specified bucket. +/// \param url The gs:// URL to your Firebase Storage bucket. +/// +/// +/// returns: +/// A Storage instance, configured with the custom storage bucket. ++ (FIRStorage * _Nonnull)storageWithURL:(NSString * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// Creates an instance of Storage, configured with a custom FirebaseApp. StorageReferences +/// generated from a resulting instance will reference files in the Firebase project +/// associated with custom FirebaseApp. +/// \param app The custom FirebaseApp used for initialization. +/// +/// +/// returns: +/// A Storage instance, configured with the custom FirebaseApp. ++ (FIRStorage * _Nonnull)storageForApp:(FIRApp * _Nonnull)app SWIFT_WARN_UNUSED_RESULT; +/// Creates an instance of Storage, configured with a custom FirebaseApp and a custom storage +/// bucket URL. +/// \param app The custom FirebaseApp used for initialization. +/// +/// \param url The gs:// url to your Firebase Storage bucket. +/// +/// +/// returns: +/// the Storage instance, configured with the custom FirebaseApp and storage bucket URL. ++ (FIRStorage * _Nonnull)storageForApp:(FIRApp * _Nonnull)app URL:(NSString * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// The FirebaseApp associated with this Storage instance. +@property (nonatomic, readonly, strong) FIRApp * _Nonnull app; +/// The maximum time in seconds to retry an upload if a failure occurs. +/// Defaults to 10 minutes (600 seconds). +@property (nonatomic) NSTimeInterval maxUploadRetryTime; +/// The maximum time in seconds to retry a download if a failure occurs. +/// Defaults to 10 minutes (600 seconds). +@property (nonatomic) NSTimeInterval maxDownloadRetryTime; +/// The maximum time in seconds to retry operations other than upload and download if a failure occurs. +/// Defaults to 2 minutes (120 seconds). +@property (nonatomic) NSTimeInterval maxOperationRetryTime; +/// Specify the maximum upload chunk size. Values less than 256K (262144) will be rounded up to 256K. Values +/// above 256K will be rounded down to the nearest 256K multiple. The default is no maximum. +@property (nonatomic) int64_t uploadChunkSizeBytes; +/// A DispatchQueue that all developer callbacks are fired on. Defaults to the main queue. +@property (nonatomic, strong) dispatch_queue_t _Nonnull callbackQueue; +/// Creates a StorageReference initialized at the root Firebase Storage location. +/// +/// returns: +/// An instance of StorageReference referencing the root of the storage bucket. +- (FIRStorageReference * _Nonnull)reference SWIFT_WARN_UNUSED_RESULT; +/// Creates a StorageReference given a gs://, http://, or https:// URL pointing to a +/// Firebase Storage location. For example, you can pass in an https:// download URL retrieved from +/// StorageReference.downloadURL(completion:) or the gs:// URL from +/// StorageReference.description. +/// \param url A gs // or https:// URL to initialize the reference with. +/// +/// +/// throws: +/// Throws a fatal error if url is not associated with the FirebaseApp used to initialize +/// this Storage instance. +/// +/// returns: +/// An instance of StorageReference at the given child path. +- (FIRStorageReference * _Nonnull)referenceForURL:(NSString * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// Creates a StorageReference initialized at a location specified by the path parameter. +/// \param path A relative path from the root of the storage bucket, +/// for instance @“path/to/object”. +/// +/// +/// returns: +/// An instance of StorageReference pointing to the given path. +- (FIRStorageReference * _Nonnull)referenceWithPath:(NSString * _Nonnull)path SWIFT_WARN_UNUSED_RESULT; +/// Configures the Storage SDK to use an emulated backend instead of the default remote backend. +/// This method should be called before invoking any other methods on a new instance of Storage. +- (void)useEmulatorWithHost:(NSString * _Nonnull)host port:(NSInteger)port; +- (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; +- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; +@property (nonatomic, readonly) NSUInteger hash; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + +/// Defines task operations such as pause, resume, cancel, and enqueue for all tasks. +/// All tasks are required to implement enqueue, which begins the task, and may optionally +/// implement pause, resume, and cancel, which operate on the task to pause, resume, and cancel +/// operations. +SWIFT_PROTOCOL_NAMED("StorageTaskManagement") +@protocol FIRStorageTaskManagement +/// Prepares a task and begins execution. +- (void)enqueue; +@optional +/// Pauses a task currently in progress. +- (void)pause; +/// Cancels a task. +- (void)cancel; +/// Resumes a paused task. +- (void)resume; +@end + +@class FIRStorageTaskSnapshot; + +/// A superclass to all Storage tasks, including StorageUploadTask +/// and StorageDownloadTask, to provide state transitions, event raising, and common storage +/// for metadata and errors. +/// Callbacks are always fired on the developer-specified callback queue. +/// If no queue is specified, it defaults to the main queue. +/// This class is not thread safe, so only call methods on the main thread. +SWIFT_CLASS_NAMED("StorageTask") +@interface FIRStorageTask : NSObject +/// An immutable view of the task and associated metadata, progress, error, etc. +@property (nonatomic, readonly, strong) FIRStorageTaskSnapshot * _Nonnull snapshot; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +enum FIRStorageTaskStatus : NSInteger; + +/// An extended StorageTask providing observable semantics that can be used for responding to changes +/// in task state. +/// Observers produce a StorageHandle, which is used to keep track of and remove specific +/// observers at a later date. +/// This class is not thread safe and can only be called on the main thread. +SWIFT_CLASS_NAMED("StorageObservableTask") +@interface FIRStorageObservableTask : FIRStorageTask +/// Observes changes in the upload status: Resume, Pause, Progress, Success, and Failure. +/// \param status The StorageTaskStatus change to observe. +/// +/// \param handler A callback that fires every time the status event occurs, +/// containing a StorageTaskSnapshot describing task state. +/// +/// +/// returns: +/// A task handle that can be used to remove the observer at a later date. +- (NSString * _Nonnull)observeStatus:(enum FIRStorageTaskStatus)status handler:(void (^ _Nonnull)(FIRStorageTaskSnapshot * _Nonnull))handler; +/// Removes the single observer with the provided handle. +/// \param handle The handle of the task to remove. +/// +- (void)removeObserverWithHandle:(NSString * _Nonnull)handle; +/// Removes all observers for a single status. +/// \param status A StorageTaskStatus to remove all listeners for. +/// +- (void)removeAllObserversForStatus:(enum FIRStorageTaskStatus)status; +/// Removes all observers. +- (void)removeAllObservers; +@end + + +/// StorageDownloadTask implements resumable downloads from an object in Firebase Storage. +/// Downloads can be returned on completion with a completion handler, and can be monitored +/// by attaching observers, or controlled by calling pause(), resume(), +/// or cancel(). +/// Downloads can currently be returned as Data in memory, or as a URL to a file on disk. +/// Downloads are performed on a background queue, and callbacks are raised on the developer +/// specified callbackQueue in Storage, or the main queue if left unspecified. +/// Currently all downloads must be initiated and managed on the main queue. +SWIFT_CLASS_NAMED("StorageDownloadTask") +@interface FIRStorageDownloadTask : FIRStorageObservableTask +/// Prepares a task and begins execution. +- (void)enqueue; +/// Pauses a task currently in progress. Calling this on a paused task has no effect. +- (void)pause; +/// Cancels a task. +- (void)cancel; +/// Resumes a paused task. Calling this on a running task has no effect. +- (void)resume; +@end + +/// Adds wrappers for common Firebase Storage errors (including creating errors from GCS errors). +/// For more information on unwrapping GCS errors, see the GCS errors docs: +/// https://cloud.google.com/storage/docs/json_api/v1/status-codes +/// This is never publicly exposed to end developers (as they will simply see an NSError). +typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageErrorCode, "StorageErrorCode", open) { + FIRStorageErrorCodeUnknown = -13000, + FIRStorageErrorCodeObjectNotFound = -13010, + FIRStorageErrorCodeBucketNotFound = -13011, + FIRStorageErrorCodeProjectNotFound = -13012, + FIRStorageErrorCodeQuotaExceeded = -13013, + FIRStorageErrorCodeUnauthenticated = -13020, + FIRStorageErrorCodeUnauthorized = -13021, + FIRStorageErrorCodeRetryLimitExceeded = -13030, + FIRStorageErrorCodeNonMatchingChecksum = -13031, + FIRStorageErrorCodeDownloadSizeExceeded = -13032, + FIRStorageErrorCodeCancelled = -13040, + FIRStorageErrorCodeInvalidArgument = -13050, +}; +static NSString * _Nonnull const FIRStorageErrorCodeDomain = @"FirebaseStorage.StorageErrorCode"; + + +/// Contains the prefixes and items returned by a StorageReference.list() call. +SWIFT_CLASS_NAMED("StorageListResult") +@interface FIRStorageListResult : NSObject +/// The prefixes (folders) returned by a list() operation. +/// +/// returns: +/// A list of prefixes (folders). +@property (nonatomic, readonly, copy) NSArray * _Nonnull prefixes; +/// The objects (files) returned by a list() operation. +/// +/// returns: +/// A page token if more results are available. +@property (nonatomic, readonly, copy) NSArray * _Nonnull items; +/// Returns a token that can be used to resume a previous list() operation. nil +/// indicates that there are no more results. +/// +/// returns: +/// A page token if more results are available. +@property (nonatomic, readonly, copy) NSString * _Nullable pageToken; +- (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +@class NSDate; + +/// Class which represents the metadata on an object in Firebase Storage. This metadata is +/// returned on successful operations, and can be used to retrieve download URLs, content types, +/// and a Storage reference to the object in question. Full documentation can be found at the GCS +/// Objects#resource docs. +/// @see https://cloud.google.com/storage/docs/json_api/v1/objects#resource +SWIFT_CLASS_NAMED("StorageMetadata") +@interface FIRStorageMetadata : NSObject +/// The name of the bucket containing this object. +@property (nonatomic, readonly, copy) NSString * _Nonnull bucket; +/// Cache-Control directive for the object data. +@property (nonatomic, copy) NSString * _Nullable cacheControl; +/// Content-Disposition of the object data. +@property (nonatomic, copy) NSString * _Nullable contentDisposition; +/// Content-Encoding of the object data. +@property (nonatomic, copy) NSString * _Nullable contentEncoding; +/// Content-Language of the object data. +@property (nonatomic, copy) NSString * _Nullable contentLanguage; +/// Content-Type of the object data. +@property (nonatomic, copy) NSString * _Nullable contentType; +/// MD5 hash of the data; encoded using base64. +@property (nonatomic, readonly, copy) NSString * _Nullable md5Hash; +/// The content generation of this object. Used for object versioning. +@property (nonatomic, readonly) int64_t generation; +/// User-provided metadata, in key/value pairs. +@property (nonatomic, copy) NSDictionary * _Nullable customMetadata; +/// The version of the metadata for this object at this generation. Used +/// for preconditions and for detecting changes in metadata. A metageneration number is only +/// meaningful in the context of a particular generation of a particular object. +@property (nonatomic, readonly) int64_t metageneration; +/// The name of this object, in gs://bucket/path/to/object.txt, this is object.txt. +@property (nonatomic, readonly, copy) NSString * _Nullable name; +/// The full path of this object, in gs://bucket/path/to/object.txt, this is path/to/object.txt. +@property (nonatomic, readonly, copy) NSString * _Nullable path; +/// Content-Length of the data in bytes. +@property (nonatomic, readonly) int64_t size; +/// The creation time of the object in RFC 3339 format. +@property (nonatomic, readonly, copy) NSDate * _Nullable timeCreated; +/// The modification time of the object metadata in RFC 3339 format. +@property (nonatomic, readonly, copy) NSDate * _Nullable updated; +/// Never used API +@property (nonatomic, readonly, strong) FIRStorageReference * _Nullable storageReference SWIFT_DEPRECATED; +/// Creates a Dictionary from the contents of the metadata. +/// @return A Dictionary that represents the contents of the metadata. +- (NSDictionary * _Nonnull)dictionaryRepresentation SWIFT_WARN_UNUSED_RESULT; +/// Determines if the current metadata represents a “file”. +@property (nonatomic, readonly) BOOL isFile; +/// Determines if the current metadata represents a “folder”. +@property (nonatomic, readonly) BOOL isFolder; +- (nonnull instancetype)init; +/// Creates an instance of StorageMetadata from the contents of a dictionary. +/// @return An instance of StorageMetadata that represents the contents of a dictionary. +- (nonnull instancetype)initWithDictionary:(NSDictionary * _Nonnull)dictionary OBJC_DESIGNATED_INITIALIZER; +- (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; +- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; +@property (nonatomic, readonly) NSUInteger hash; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; +@end + + +@class NSData; +@class FIRStorageUploadTask; +@class NSURL; + +/// StorageReference represents a reference to a Google Cloud Storage object. Developers can +/// upload and download objects, as well as get/set object metadata, and delete an object at the +/// path. See the Cloud docs for more details: https://cloud.google.com/storage/ +SWIFT_CLASS_NAMED("StorageReference") +@interface FIRStorageReference : NSObject +/// The Storage service object which created this reference. +@property (nonatomic, readonly, strong) FIRStorage * _Nonnull storage; +/// The name of the Google Cloud Storage bucket associated with this reference. +/// For example, in gs://bucket/path/to/object.txt, the bucket would be ‘bucket’. +@property (nonatomic, readonly, copy) NSString * _Nonnull bucket; +/// The full path to this object, not including the Google Cloud Storage bucket. +/// In gs://bucket/path/to/object.txt, the full path would be: path/to/object.txt +@property (nonatomic, readonly, copy) NSString * _Nonnull fullPath; +/// The short name of the object associated with this reference. +/// In gs://bucket/path/to/object.txt, the name of the object would be object.txt. +@property (nonatomic, readonly, copy) NSString * _Nonnull name; +/// Creates a new StorageReference pointing to the root object. +/// +/// returns: +/// A new StorageReference pointing to the root object. +- (FIRStorageReference * _Nonnull)root SWIFT_WARN_UNUSED_RESULT; +/// Creates a new StorageReference pointing to the parent of the current reference +/// or nil if this instance references the root location. +/// For example: +/// path = foo/bar/baz parent = foo/bar +/// path = foo parent = (root) +/// path = (root) parent = nil +/// +/// returns: +/// A new StorageReference pointing to the parent of the current reference. +- (FIRStorageReference * _Nullable)parent SWIFT_WARN_UNUSED_RESULT; +/// Creates a new StorageReference pointing to a child object of the current reference. +/// path = foo child = bar newPath = foo/bar +/// path = foo/bar child = baz ntask.impl.snapshotwPath = foo/bar/baz +/// All leading and trailing slashes will be removed, and consecutive slashes will be +/// compressed to single slashes. For example: +/// child = /foo/bar newPath = foo/bar +/// child = foo/bar/ newPath = foo/bar +/// child = foo///bar newPath = foo/bar +/// \param path The path to append to the current path. +/// +/// +/// returns: +/// A new StorageReference pointing to a child location of the current reference. +- (FIRStorageReference * _Nonnull)child:(NSString * _Nonnull)path SWIFT_WARN_UNUSED_RESULT; +/// Asynchronously uploads data to the currently specified StorageReference, +/// without additional metadata. +/// This is not recommended for large files, and one should instead upload a file from disk. +/// \param uploadData The data to upload. +/// +/// \param metadata StorageMetadata containing additional information (MIME type, etc.) +/// about the object being uploaded. +/// +/// +/// returns: +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putData:(NSData * _Nonnull)uploadData metadata:(FIRStorageMetadata * _Nullable)metadata; +/// Asynchronously uploads data to the currently specified StorageReference. +/// This is not recommended for large files, and one should instead upload a file from disk. +/// \param uploadData The data to upload. +/// +/// +/// returns: +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putData:(NSData * _Nonnull)uploadData; +/// Asynchronously uploads data to the currently specified StorageReference. +/// This is not recommended for large files, and one should instead upload a file from disk. +/// \param uploadData The data to upload. +/// +/// \param metadata StorageMetadata containing additional information (MIME type, etc.) +/// about the object being uploaded. +/// +/// \param completion A closure that either returns the object metadata on success, +/// or an error on failure. +/// +/// +/// returns: +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putData:(NSData * _Nonnull)uploadData metadata:(FIRStorageMetadata * _Nullable)metadata completion:(void (^ _Nullable)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; +/// Asynchronously uploads a file to the currently specified StorageReference. +/// putData should be used instead of putFile in Extensions. +/// \param fileURL A URL representing the system file path of the object to be uploaded. +/// +/// \param metadata StorageMetadata containing additional information (MIME type, etc.) +/// about the object being uploaded. +/// +/// +/// returns: +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putFile:(NSURL * _Nonnull)fileURL metadata:(FIRStorageMetadata * _Nullable)metadata; +/// Asynchronously uploads a file to the currently specified StorageReference, +/// without additional metadata. +/// putData should be used instead of putFile in Extensions. +/// @param fileURL A URL representing the system file path of the object to be uploaded. +/// @return An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putFile:(NSURL * _Nonnull)fileURL; +/// Asynchronously uploads a file to the currently specified StorageReference. +/// putData should be used instead of putFile in Extensions. +/// \param fileURL A URL representing the system file path of the object to be uploaded. +/// +/// \param metadata StorageMetadata containing additional information (MIME type, etc.) +/// about the object being uploaded. +/// +/// \param completion A completion block that either returns the object metadata on success, +/// or an error on failure. +/// +/// +/// returns: +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putFile:(NSURL * _Nonnull)fileURL metadata:(FIRStorageMetadata * _Nullable)metadata completion:(void (^ _Nullable)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; +/// Asynchronously downloads the object at the StorageReference to a Data instance in memory. +/// A Data buffer of the provided max size will be allocated, so ensure that the device has enough free +/// memory to complete the download. For downloading large files, write(toFile:) may be a better option. +/// \param maxSize The maximum size in bytes to download. If the download exceeds this size, +/// the task will be cancelled and an error will be returned. +/// +/// \param completion A completion block that either returns the object data on success, +/// or an error on failure. +/// +/// +/// returns: +/// An StorageDownloadTask that can be used to monitor or manage the download. +- (FIRStorageDownloadTask * _Nonnull)dataWithMaxSize:(int64_t)maxSize completion:(void (^ _Nonnull)(NSData * _Nullable, NSError * _Nullable))completion; +/// Asynchronously retrieves a long lived download URL with a revokable token. +/// This can be used to share the file with others, but can be revoked by a developer +/// in the Firebase Console. +/// \param completion A completion block that either returns the URL on success, +/// or an error on failure. +/// +- (void)downloadURLWithCompletion:(void (^ _Nonnull)(NSURL * _Nullable, NSError * _Nullable))completion; +/// Asynchronously downloads the object at the current path to a specified system filepath. +///
      +///
    • +/// Returns An StorageDownloadTask that can be used to monitor or manage the download. +///
    • +///
    +/// \param fileURL A file system URL representing the path the object should be downloaded to. +/// +- (FIRStorageDownloadTask * _Nonnull)writeToFile:(NSURL * _Nonnull)fileURL; +/// Asynchronously downloads the object at the current path to a specified system filepath. +/// \param fileURL A file system URL representing the path the object should be downloaded to. +/// +/// \param completion A closure that fires when the file download completes, passed either +/// a URL pointing to the file path of the downloaded file on success, +/// or an error on failure. +/// +/// +/// returns: +/// A StorageDownloadTask that can be used to monitor or manage the download. +- (FIRStorageDownloadTask * _Nonnull)writeToFile:(NSURL * _Nonnull)fileURL completion:(void (^ _Nullable)(NSURL * _Nullable, NSError * _Nullable))completion; +/// Lists all items (files) and prefixes (folders) under this StorageReference. +/// This is a helper method for calling list() repeatedly until there are no more results. +/// Consistency of the result is not guaranteed if objects are inserted or removed while this +/// operation is executing. All results are buffered in memory. +/// listAll(completion:) is only available for projects using Firebase Rules Version 2. +/// \param completion A completion handler that will be invoked with all items and prefixes under +/// the current StorageReference. +/// +- (void)listAllWithCompletion:(void (^ _Nonnull)(FIRStorageListResult * _Nullable, NSError * _Nullable))completion; +/// List up to maxResults items (files) and prefixes (folders) under this StorageReference. +/// “/” is treated as a path delimiter. Firebase Storage does not support unsupported object +/// paths that end with “/” or contain two consecutive “/“s. All invalid objects in GCS will be +/// filtered. +/// list(maxResults:completion:) is only available for projects using Firebase Rules Version 2. +/// \param maxResults The maximum number of results to return in a single page. Must be greater +/// than 0 and at most 1000. +/// +/// \param completion A completion handler that will be invoked with up to maxResults items and +/// prefixes under the current StorageReference. +/// +- (void)listWithMaxResults:(int64_t)maxResults completion:(void (^ _Nonnull)(FIRStorageListResult * _Nullable, NSError * _Nullable))completion; +/// Resumes a previous call to list(maxResults:completion:), starting after a pagination token. +/// Returns the next set of items (files) and prefixes (folders) under this StorageReference. +/// “/” is treated as a path delimiter. Storage does not support unsupported object +/// paths that end with “/” or contain two consecutive “/“s. All invalid objects in GCS will be +/// filtered. +/// list(maxResults:pageToken:completion:)is only available for projects using Firebase Rules +/// Version 2. +/// \param maxResults The maximum number of results to return in a single page. Must be greater +/// than 0 and at most 1000. +/// +/// \param pageToken A page token from a previous call to list. +/// +/// \param completion A completion handler that will be invoked with the next items and prefixes +/// under the current StorageReference. +/// +- (void)listWithMaxResults:(int64_t)maxResults pageToken:(NSString * _Nonnull)pageToken completion:(void (^ _Nonnull)(FIRStorageListResult * _Nullable, NSError * _Nullable))completion; +/// Retrieves metadata associated with an object at the current path. +/// \param completion A completion block which returns the object metadata on success, +/// or an error on failure. +/// +- (void)metadataWithCompletion:(void (^ _Nonnull)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; +/// Updates the metadata associated with an object at the current path. +/// \param metadata A StorageMetadata object with the metadata to update. +/// +/// \param completion A completion block which returns the StorageMetadata on success, +/// or an error on failure. +/// +- (void)updateMetadata:(FIRStorageMetadata * _Nonnull)metadata completion:(void (^ _Nullable)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; +/// Deletes the object at the current path. +/// \param completion A completion block which returns a nonnull error on failure. +/// +- (void)deleteWithCompletion:(void (^ _Nullable)(NSError * _Nullable))completion; +- (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; +- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; +@property (nonatomic, readonly) NSUInteger hash; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + + + + + +@class NSProgress; + +/// StorageTaskSnapshot represents an immutable view of a task. +/// A snapshot contains a task, storage reference, metadata (if it exists), +/// progress, and an error (if one occurred). +SWIFT_CLASS_NAMED("StorageTaskSnapshot") +@interface FIRStorageTaskSnapshot : NSObject +/// The task this snapshot represents. +@property (nonatomic, readonly, strong) FIRStorageTask * _Nonnull task; +/// Metadata returned by the task, or nil if no metadata returned. +@property (nonatomic, readonly, strong) FIRStorageMetadata * _Nullable metadata; +/// The StorageReference this task operates on. +@property (nonatomic, readonly, strong) FIRStorageReference * _Nonnull reference; +/// An object which tracks the progress of an upload or download. +@property (nonatomic, readonly, strong) NSProgress * _Nullable progress; +/// An error raised during task execution, or nil if no error occurred. +@property (nonatomic, readonly) NSError * _Nullable error; +/// The status of the task. +@property (nonatomic, readonly) enum FIRStorageTaskStatus status; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +@end + +typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageTaskStatus, "StorageTaskStatus", open) { + FIRStorageTaskStatusUnknown = 0, + FIRStorageTaskStatusResume = 1, + FIRStorageTaskStatusProgress = 2, + FIRStorageTaskStatusPause = 3, + FIRStorageTaskStatusSuccess = 4, + FIRStorageTaskStatusFailure = 5, +}; + + +/// StorageUploadTask implements resumable uploads to a file in Firebase Storage. +/// Uploads can be returned on completion with a completion callback, and can be monitored +/// by attaching observers, or controlled by calling pause(), resume(), +/// or cancel(). +/// Uploads can be initialized from Data in memory, or a URL to a file on disk. +/// Uploads are performed on a background queue, and callbacks are raised on the developer +/// specified callbackQueue in Storage, or the main queue if unspecified. +/// Currently all uploads must be initiated and managed on the main queue. +SWIFT_CLASS_NAMED("StorageUploadTask") +@interface FIRStorageUploadTask : FIRStorageObservableTask +/// Prepares a task and begins execution. +- (void)enqueue; +/// Pauses a task currently in progress. +- (void)pause; +/// Cancels a task. +- (void)cancel; +/// Resumes a paused task. +- (void)resume; +@end + +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef FIREBASESTORAGE_SWIFT_H +#define FIREBASESTORAGE_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) -#else -#define OBJC_DESIGNATED_INITIALIZER -#endif +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif #endif #if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) -#else -#define SWIFT_ENUM_ATTR(_extensibility) -#endif +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif #endif #if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) -#endif +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT +#endif +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} #endif #endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" @@ -211,132 +1066,125 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); @import ObjectiveC; #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol(language = "Swift", defined_in = "FirebaseStorage", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="FirebaseStorage",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) @class NSString; @class FIRApp; @class FIRStorageReference; /// Firebase Storage is a service that supports uploading and downloading binary objects, -/// such as images, videos, and other files to Google Cloud Storage. Instances of -/// Storage are not thread-safe. If you call Storage.storage(), the -/// instance will initialize with the default FirebaseApp, +/// such as images, videos, and other files to Google Cloud Storage. Instances of Storage +/// are not thread-safe. +/// If you call Storage.storage(), the instance will initialize with the default FirebaseApp, /// FirebaseApp.app(), and the storage location will come from the provided /// GoogleService-Info.plist. /// If you provide a custom instance of FirebaseApp, -/// the storage location will be specified via the FirebaseOptions.storageBucket -/// property. +/// the storage location will be specified via the FirebaseOptions.storageBucket property. SWIFT_CLASS_NAMED("Storage") @interface FIRStorage : NSObject /// The default Storage instance. /// /// returns: /// An instance of Storage, configured with the default FirebaseApp. -+ (FIRStorage *_Nonnull)storage SWIFT_WARN_UNUSED_RESULT; -/// A method used to create Storage instances initialized with a custom storage bucket -/// URL. Any StorageReferences generated from this instance of Storage -/// will reference files and directories within the specified bucket. \param url The -/// gs:// URL to your Firebase Storage bucket. ++ (FIRStorage * _Nonnull)storage SWIFT_WARN_UNUSED_RESULT; +/// A method used to create Storage instances initialized with a custom storage bucket URL. +/// Any StorageReferences generated from this instance of Storage will reference files +/// and directories within the specified bucket. +/// \param url The gs:// URL to your Firebase Storage bucket. /// /// /// returns: /// A Storage instance, configured with the custom storage bucket. -+ (FIRStorage *_Nonnull)storageWithURL:(NSString *_Nonnull)url SWIFT_WARN_UNUSED_RESULT; -/// Creates an instance of Storage, configured with a custom FirebaseApp. -/// StorageReferences generated from a resulting instance will reference files in the -/// Firebase project associated with custom FirebaseApp. \param app The custom -/// FirebaseApp used for initialization. ++ (FIRStorage * _Nonnull)storageWithURL:(NSString * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// Creates an instance of Storage, configured with a custom FirebaseApp. StorageReferences +/// generated from a resulting instance will reference files in the Firebase project +/// associated with custom FirebaseApp. +/// \param app The custom FirebaseApp used for initialization. /// /// /// returns: /// A Storage instance, configured with the custom FirebaseApp. -+ (FIRStorage *_Nonnull)storageForApp:(FIRApp *_Nonnull)app SWIFT_WARN_UNUSED_RESULT; -/// Creates an instance of Storage, configured with a custom FirebaseApp -/// and a custom storage bucket URL. \param app The custom FirebaseApp used for -/// initialization. ++ (FIRStorage * _Nonnull)storageForApp:(FIRApp * _Nonnull)app SWIFT_WARN_UNUSED_RESULT; +/// Creates an instance of Storage, configured with a custom FirebaseApp and a custom storage +/// bucket URL. +/// \param app The custom FirebaseApp used for initialization. /// /// \param url The gs:// url to your Firebase Storage bucket. /// /// /// returns: -/// the Storage instance, configured with the custom FirebaseApp and -/// storage bucket URL. -+ (FIRStorage *_Nonnull)storageForApp:(FIRApp *_Nonnull)app - URL:(NSString *_Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// the Storage instance, configured with the custom FirebaseApp and storage bucket URL. ++ (FIRStorage * _Nonnull)storageForApp:(FIRApp * _Nonnull)app URL:(NSString * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; /// The FirebaseApp associated with this Storage instance. -@property(nonatomic, readonly, strong) FIRApp *_Nonnull app; +@property (nonatomic, readonly, strong) FIRApp * _Nonnull app; /// The maximum time in seconds to retry an upload if a failure occurs. /// Defaults to 10 minutes (600 seconds). -@property(nonatomic) NSTimeInterval maxUploadRetryTime; +@property (nonatomic) NSTimeInterval maxUploadRetryTime; /// The maximum time in seconds to retry a download if a failure occurs. /// Defaults to 10 minutes (600 seconds). -@property(nonatomic) NSTimeInterval maxDownloadRetryTime; -/// The maximum time in seconds to retry operations other than upload and download if a failure -/// occurs. Defaults to 2 minutes (120 seconds). -@property(nonatomic) NSTimeInterval maxOperationRetryTime; -/// Specify the maximum upload chunk size. Values less than 256K (262144) will be rounded up to -/// 256K. Values above 256K will be rounded down to the nearest 256K multiple. The default is no -/// maximum. -@property(nonatomic) int64_t uploadChunkSizeBytes; -/// A DispatchQueue that all developer callbacks are fired on. Defaults to the main -/// queue. -@property(nonatomic, strong) dispatch_queue_t _Nonnull callbackQueue; +@property (nonatomic) NSTimeInterval maxDownloadRetryTime; +/// The maximum time in seconds to retry operations other than upload and download if a failure occurs. +/// Defaults to 2 minutes (120 seconds). +@property (nonatomic) NSTimeInterval maxOperationRetryTime; +/// Specify the maximum upload chunk size. Values less than 256K (262144) will be rounded up to 256K. Values +/// above 256K will be rounded down to the nearest 256K multiple. The default is no maximum. +@property (nonatomic) int64_t uploadChunkSizeBytes; +/// A DispatchQueue that all developer callbacks are fired on. Defaults to the main queue. +@property (nonatomic, strong) dispatch_queue_t _Nonnull callbackQueue; /// Creates a StorageReference initialized at the root Firebase Storage location. /// /// returns: /// An instance of StorageReference referencing the root of the storage bucket. -- (FIRStorageReference *_Nonnull)reference SWIFT_WARN_UNUSED_RESULT; -/// Creates a StorageReference given a gs://, http://, or -/// https:// URL pointing to a Firebase Storage location. For example, you can pass in -/// an https:// download URL retrieved from +- (FIRStorageReference * _Nonnull)reference SWIFT_WARN_UNUSED_RESULT; +/// Creates a StorageReference given a gs://, http://, or https:// URL pointing to a +/// Firebase Storage location. For example, you can pass in an https:// download URL retrieved from /// StorageReference.downloadURL(completion:) or the gs:// URL from /// StorageReference.description. /// \param url A gs // or https:// URL to initialize the reference with. /// /// /// throws: -/// Throws a fatal error if url is not associated with the FirebaseApp -/// used to initialize this Storage instance. +/// Throws a fatal error if url is not associated with the FirebaseApp used to initialize +/// this Storage instance. /// /// returns: /// An instance of StorageReference at the given child path. -- (FIRStorageReference *_Nonnull)referenceForURL:(NSString *_Nonnull)url SWIFT_WARN_UNUSED_RESULT; -/// Creates a StorageReference initialized at a location specified by the -/// path parameter. \param path A relative path from the root of the storage bucket, +- (FIRStorageReference * _Nonnull)referenceForURL:(NSString * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; +/// Creates a StorageReference initialized at a location specified by the path parameter. +/// \param path A relative path from the root of the storage bucket, /// for instance @“path/to/object”. /// /// /// returns: /// An instance of StorageReference pointing to the given path. -- (FIRStorageReference *_Nonnull)referenceWithPath:(NSString *_Nonnull)path - SWIFT_WARN_UNUSED_RESULT; +- (FIRStorageReference * _Nonnull)referenceWithPath:(NSString * _Nonnull)path SWIFT_WARN_UNUSED_RESULT; /// Configures the Storage SDK to use an emulated backend instead of the default remote backend. -/// This method should be called before invoking any other methods on a new instance of -/// Storage. -- (void)useEmulatorWithHost:(NSString *_Nonnull)host port:(NSInteger)port; +/// This method should be called before invoking any other methods on a new instance of Storage. +- (void)useEmulatorWithHost:(NSString * _Nonnull)host port:(NSInteger)port; - (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; -@property(nonatomic, readonly) NSUInteger hash; +@property (nonatomic, readonly) NSUInteger hash; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end + /// Defines task operations such as pause, resume, cancel, and enqueue for all tasks. /// All tasks are required to implement enqueue, which begins the task, and may optionally /// implement pause, resume, and cancel, which operate on the task to pause, resume, and cancel @@ -357,24 +1205,26 @@ SWIFT_PROTOCOL_NAMED("StorageTaskManagement") @class FIRStorageTaskSnapshot; /// A superclass to all Storage tasks, including StorageUploadTask -/// and StorageDownloadTask, to provide state transitions, event raising, and common -/// storage for metadata and errors. Callbacks are always fired on the developer-specified callback -/// queue. If no queue is specified, it defaults to the main queue. This class is not thread safe, -/// so only call methods on the main thread. +/// and StorageDownloadTask, to provide state transitions, event raising, and common storage +/// for metadata and errors. +/// Callbacks are always fired on the developer-specified callback queue. +/// If no queue is specified, it defaults to the main queue. +/// This class is not thread safe, so only call methods on the main thread. SWIFT_CLASS_NAMED("StorageTask") @interface FIRStorageTask : NSObject /// An immutable view of the task and associated metadata, progress, error, etc. -@property(nonatomic, readonly, strong) FIRStorageTaskSnapshot *_Nonnull snapshot; +@property (nonatomic, readonly, strong) FIRStorageTaskSnapshot * _Nonnull snapshot; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end enum FIRStorageTaskStatus : NSInteger; -/// An extended StorageTask providing observable semantics that can be used for -/// responding to changes in task state. Observers produce a StorageHandle, which is -/// used to keep track of and remove specific observers at a later date. This class is not thread -/// safe and can only be called on the main thread. +/// An extended StorageTask providing observable semantics that can be used for responding to changes +/// in task state. +/// Observers produce a StorageHandle, which is used to keep track of and remove specific +/// observers at a later date. +/// This class is not thread safe and can only be called on the main thread. SWIFT_CLASS_NAMED("StorageObservableTask") @interface FIRStorageObservableTask : FIRStorageTask /// Observes changes in the upload status: Resume, Pause, Progress, Success, and Failure. @@ -386,12 +1236,11 @@ SWIFT_CLASS_NAMED("StorageObservableTask") /// /// returns: /// A task handle that can be used to remove the observer at a later date. -- (NSString *_Nonnull)observeStatus:(enum FIRStorageTaskStatus)status - handler:(void (^_Nonnull)(FIRStorageTaskSnapshot *_Nonnull))handler; +- (NSString * _Nonnull)observeStatus:(enum FIRStorageTaskStatus)status handler:(void (^ _Nonnull)(FIRStorageTaskSnapshot * _Nonnull))handler; /// Removes the single observer with the provided handle. -/// \param handle The handle of the task to remove. +/// \param handle The handle of the task to remove. /// -- (void)removeObserverWithHandle:(NSString *_Nonnull)handle; +- (void)removeObserverWithHandle:(NSString * _Nonnull)handle; /// Removes all observers for a single status. /// \param status A StorageTaskStatus to remove all listeners for. /// @@ -400,14 +1249,15 @@ SWIFT_CLASS_NAMED("StorageObservableTask") - (void)removeAllObservers; @end -/// StorageDownloadTask implements resumable downloads from an object in Firebase -/// Storage. Downloads can be returned on completion with a completion handler, and can be monitored + +/// StorageDownloadTask implements resumable downloads from an object in Firebase Storage. +/// Downloads can be returned on completion with a completion handler, and can be monitored /// by attaching observers, or controlled by calling pause(), resume(), /// or cancel(). -/// Downloads can currently be returned as Data in memory, or as a URL to -/// a file on disk. Downloads are performed on a background queue, and callbacks are raised on the -/// developer specified callbackQueue in Storage, or the main queue if left -/// unspecified. Currently all downloads must be initiated and managed on the main queue. +/// Downloads can currently be returned as Data in memory, or as a URL to a file on disk. +/// Downloads are performed on a background queue, and callbacks are raised on the developer +/// specified callbackQueue in Storage, or the main queue if left unspecified. +/// Currently all downloads must be initiated and managed on the main queue. SWIFT_CLASS_NAMED("StorageDownloadTask") @interface FIRStorageDownloadTask : FIRStorageObservableTask /// Prepares a task and begins execution. @@ -424,21 +1274,22 @@ SWIFT_CLASS_NAMED("StorageDownloadTask") /// For more information on unwrapping GCS errors, see the GCS errors docs: /// https://cloud.google.com/storage/docs/json_api/v1/status-codes /// This is never publicly exposed to end developers (as they will simply see an NSError). -typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageErrorCode, "StorageErrorCode", open){ - FIRStorageErrorCodeUnknown = -13000, - FIRStorageErrorCodeObjectNotFound = -13010, - FIRStorageErrorCodeBucketNotFound = -13011, - FIRStorageErrorCodeProjectNotFound = -13012, - FIRStorageErrorCodeQuotaExceeded = -13013, - FIRStorageErrorCodeUnauthenticated = -13020, - FIRStorageErrorCodeUnauthorized = -13021, - FIRStorageErrorCodeRetryLimitExceeded = -13030, - FIRStorageErrorCodeNonMatchingChecksum = -13031, - FIRStorageErrorCodeDownloadSizeExceeded = -13032, - FIRStorageErrorCodeCancelled = -13040, - FIRStorageErrorCodeInvalidArgument = -13050, +typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageErrorCode, "StorageErrorCode", open) { + FIRStorageErrorCodeUnknown = -13000, + FIRStorageErrorCodeObjectNotFound = -13010, + FIRStorageErrorCodeBucketNotFound = -13011, + FIRStorageErrorCodeProjectNotFound = -13012, + FIRStorageErrorCodeQuotaExceeded = -13013, + FIRStorageErrorCodeUnauthenticated = -13020, + FIRStorageErrorCodeUnauthorized = -13021, + FIRStorageErrorCodeRetryLimitExceeded = -13030, + FIRStorageErrorCodeNonMatchingChecksum = -13031, + FIRStorageErrorCodeDownloadSizeExceeded = -13032, + FIRStorageErrorCodeCancelled = -13040, + FIRStorageErrorCodeInvalidArgument = -13050, }; -static NSString *_Nonnull const FIRStorageErrorCodeDomain = @"FirebaseStorage.StorageErrorCode"; +static NSString * _Nonnull const FIRStorageErrorCodeDomain = @"FirebaseStorage.StorageErrorCode"; + /// Contains the prefixes and items returned by a StorageReference.list() call. SWIFT_CLASS_NAMED("StorageListResult") @@ -447,18 +1298,18 @@ SWIFT_CLASS_NAMED("StorageListResult") /// /// returns: /// A list of prefixes (folders). -@property(nonatomic, readonly, copy) NSArray *_Nonnull prefixes; +@property (nonatomic, readonly, copy) NSArray * _Nonnull prefixes; /// The objects (files) returned by a list() operation. /// /// returns: /// A page token if more results are available. -@property(nonatomic, readonly, copy) NSArray *_Nonnull items; -/// Returns a token that can be used to resume a previous list() operation. -/// nil indicates that there are no more results. +@property (nonatomic, readonly, copy) NSArray * _Nonnull items; +/// Returns a token that can be used to resume a previous list() operation. nil +/// indicates that there are no more results. /// /// returns: /// A page token if more results are available. -@property(nonatomic, readonly, copy) NSString *_Nullable pageToken; +@property (nonatomic, readonly, copy) NSString * _Nullable pageToken; - (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @@ -474,85 +1325,82 @@ SWIFT_CLASS_NAMED("StorageListResult") SWIFT_CLASS_NAMED("StorageMetadata") @interface FIRStorageMetadata : NSObject /// The name of the bucket containing this object. -@property(nonatomic, readonly, copy) NSString *_Nonnull bucket; +@property (nonatomic, readonly, copy) NSString * _Nonnull bucket; /// Cache-Control directive for the object data. -@property(nonatomic, copy) NSString *_Nullable cacheControl; +@property (nonatomic, copy) NSString * _Nullable cacheControl; /// Content-Disposition of the object data. -@property(nonatomic, copy) NSString *_Nullable contentDisposition; +@property (nonatomic, copy) NSString * _Nullable contentDisposition; /// Content-Encoding of the object data. -@property(nonatomic, copy) NSString *_Nullable contentEncoding; +@property (nonatomic, copy) NSString * _Nullable contentEncoding; /// Content-Language of the object data. -@property(nonatomic, copy) NSString *_Nullable contentLanguage; +@property (nonatomic, copy) NSString * _Nullable contentLanguage; /// Content-Type of the object data. -@property(nonatomic, copy) NSString *_Nullable contentType; +@property (nonatomic, copy) NSString * _Nullable contentType; /// MD5 hash of the data; encoded using base64. -@property(nonatomic, readonly, copy) NSString *_Nullable md5Hash; +@property (nonatomic, readonly, copy) NSString * _Nullable md5Hash; /// The content generation of this object. Used for object versioning. -@property(nonatomic, readonly) int64_t generation; +@property (nonatomic, readonly) int64_t generation; /// User-provided metadata, in key/value pairs. -@property(nonatomic, copy) NSDictionary *_Nullable customMetadata; +@property (nonatomic, copy) NSDictionary * _Nullable customMetadata; /// The version of the metadata for this object at this generation. Used /// for preconditions and for detecting changes in metadata. A metageneration number is only /// meaningful in the context of a particular generation of a particular object. -@property(nonatomic, readonly) int64_t metageneration; +@property (nonatomic, readonly) int64_t metageneration; /// The name of this object, in gs://bucket/path/to/object.txt, this is object.txt. -@property(nonatomic, readonly, copy) NSString *_Nullable name; +@property (nonatomic, readonly, copy) NSString * _Nullable name; /// The full path of this object, in gs://bucket/path/to/object.txt, this is path/to/object.txt. -@property(nonatomic, readonly, copy) NSString *_Nullable path; +@property (nonatomic, readonly, copy) NSString * _Nullable path; /// Content-Length of the data in bytes. -@property(nonatomic, readonly) int64_t size; +@property (nonatomic, readonly) int64_t size; /// The creation time of the object in RFC 3339 format. -@property(nonatomic, readonly, copy) NSDate *_Nullable timeCreated; +@property (nonatomic, readonly, copy) NSDate * _Nullable timeCreated; /// The modification time of the object metadata in RFC 3339 format. -@property(nonatomic, readonly, copy) NSDate *_Nullable updated; +@property (nonatomic, readonly, copy) NSDate * _Nullable updated; /// Never used API -@property(nonatomic, readonly, strong) - FIRStorageReference *_Nullable storageReference SWIFT_DEPRECATED; +@property (nonatomic, readonly, strong) FIRStorageReference * _Nullable storageReference SWIFT_DEPRECATED; /// Creates a Dictionary from the contents of the metadata. /// @return A Dictionary that represents the contents of the metadata. -- (NSDictionary *_Nonnull)dictionaryRepresentation SWIFT_WARN_UNUSED_RESULT; +- (NSDictionary * _Nonnull)dictionaryRepresentation SWIFT_WARN_UNUSED_RESULT; /// Determines if the current metadata represents a “file”. -@property(nonatomic, readonly) BOOL isFile; +@property (nonatomic, readonly) BOOL isFile; /// Determines if the current metadata represents a “folder”. -@property(nonatomic, readonly) BOOL isFolder; +@property (nonatomic, readonly) BOOL isFolder; - (nonnull instancetype)init; /// Creates an instance of StorageMetadata from the contents of a dictionary. /// @return An instance of StorageMetadata that represents the contents of a dictionary. -- (nonnull instancetype)initWithDictionary: - (NSDictionary *_Nonnull)dictionary OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithDictionary:(NSDictionary * _Nonnull)dictionary OBJC_DESIGNATED_INITIALIZER; - (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; -@property(nonatomic, readonly) NSUInteger hash; -@property(nonatomic, readonly, copy) NSString *_Nonnull description; +@property (nonatomic, readonly) NSUInteger hash; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; @end + @class NSData; @class FIRStorageUploadTask; @class NSURL; -/// StorageReference represents a reference to a Google Cloud Storage object. -/// Developers can upload and download objects, as well as get/set object metadata, and delete an -/// object at the path. See the Cloud docs for more details: https://cloud.google.com/storage/ +/// StorageReference represents a reference to a Google Cloud Storage object. Developers can +/// upload and download objects, as well as get/set object metadata, and delete an object at the +/// path. See the Cloud docs for more details: https://cloud.google.com/storage/ SWIFT_CLASS_NAMED("StorageReference") @interface FIRStorageReference : NSObject /// The Storage service object which created this reference. -@property(nonatomic, readonly, strong) FIRStorage *_Nonnull storage; +@property (nonatomic, readonly, strong) FIRStorage * _Nonnull storage; /// The name of the Google Cloud Storage bucket associated with this reference. /// For example, in gs://bucket/path/to/object.txt, the bucket would be ‘bucket’. -@property(nonatomic, readonly, copy) NSString *_Nonnull bucket; +@property (nonatomic, readonly, copy) NSString * _Nonnull bucket; /// The full path to this object, not including the Google Cloud Storage bucket. -/// In gs://bucket/path/to/object.txt, the full path would be: -/// path/to/object.txt -@property(nonatomic, readonly, copy) NSString *_Nonnull fullPath; +/// In gs://bucket/path/to/object.txt, the full path would be: path/to/object.txt +@property (nonatomic, readonly, copy) NSString * _Nonnull fullPath; /// The short name of the object associated with this reference. -/// In gs://bucket/path/to/object.txt, the name of the object would be -/// object.txt. -@property(nonatomic, readonly, copy) NSString *_Nonnull name; +/// In gs://bucket/path/to/object.txt, the name of the object would be object.txt. +@property (nonatomic, readonly, copy) NSString * _Nonnull name; /// Creates a new StorageReference pointing to the root object. /// /// returns: /// A new StorageReference pointing to the root object. -- (FIRStorageReference *_Nonnull)root SWIFT_WARN_UNUSED_RESULT; +- (FIRStorageReference * _Nonnull)root SWIFT_WARN_UNUSED_RESULT; /// Creates a new StorageReference pointing to the parent of the current reference /// or nil if this instance references the root location. /// For example: @@ -562,7 +1410,7 @@ SWIFT_CLASS_NAMED("StorageReference") /// /// returns: /// A new StorageReference pointing to the parent of the current reference. -- (FIRStorageReference *_Nullable)parent SWIFT_WARN_UNUSED_RESULT; +- (FIRStorageReference * _Nullable)parent SWIFT_WARN_UNUSED_RESULT; /// Creates a new StorageReference pointing to a child object of the current reference. /// path = foo child = bar newPath = foo/bar /// path = foo/bar child = baz ntask.impl.snapshotwPath = foo/bar/baz @@ -571,12 +1419,12 @@ SWIFT_CLASS_NAMED("StorageReference") /// child = /foo/bar newPath = foo/bar /// child = foo/bar/ newPath = foo/bar /// child = foo///bar newPath = foo/bar -/// \param path The path to append to the current path. +/// \param path The path to append to the current path. /// /// /// returns: /// A new StorageReference pointing to a child location of the current reference. -- (FIRStorageReference *_Nonnull)child:(NSString *_Nonnull)path SWIFT_WARN_UNUSED_RESULT; +- (FIRStorageReference * _Nonnull)child:(NSString * _Nonnull)path SWIFT_WARN_UNUSED_RESULT; /// Asynchronously uploads data to the currently specified StorageReference, /// without additional metadata. /// This is not recommended for large files, and one should instead upload a file from disk. @@ -587,19 +1435,16 @@ SWIFT_CLASS_NAMED("StorageReference") /// /// /// returns: -/// An instance of StorageUploadTask, which can be used to monitor or manage the -/// upload. -- (FIRStorageUploadTask *_Nonnull)putData:(NSData *_Nonnull)uploadData - metadata:(FIRStorageMetadata *_Nullable)metadata; +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putData:(NSData * _Nonnull)uploadData metadata:(FIRStorageMetadata * _Nullable)metadata; /// Asynchronously uploads data to the currently specified StorageReference. /// This is not recommended for large files, and one should instead upload a file from disk. -/// \param uploadData The data to upload. +/// \param uploadData The data to upload. /// /// /// returns: -/// An instance of StorageUploadTask, which can be used to monitor or manage the -/// upload. -- (FIRStorageUploadTask *_Nonnull)putData:(NSData *_Nonnull)uploadData; +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putData:(NSData * _Nonnull)uploadData; /// Asynchronously uploads data to the currently specified StorageReference. /// This is not recommended for large files, and one should instead upload a file from disk. /// \param uploadData The data to upload. @@ -612,12 +1457,8 @@ SWIFT_CLASS_NAMED("StorageReference") /// /// /// returns: -/// An instance of StorageUploadTask, which can be used to monitor or manage the -/// upload. -- (FIRStorageUploadTask *_Nonnull)putData:(NSData *_Nonnull)uploadData - metadata:(FIRStorageMetadata *_Nullable)metadata - completion:(void (^_Nullable)(FIRStorageMetadata *_Nullable, - NSError *_Nullable))completion; +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putData:(NSData * _Nonnull)uploadData metadata:(FIRStorageMetadata * _Nullable)metadata completion:(void (^ _Nullable)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; /// Asynchronously uploads a file to the currently specified StorageReference. /// putData should be used instead of putFile in Extensions. /// \param fileURL A URL representing the system file path of the object to be uploaded. @@ -627,16 +1468,14 @@ SWIFT_CLASS_NAMED("StorageReference") /// /// /// returns: -/// An instance of StorageUploadTask, which can be used to monitor or manage the -/// upload. -- (FIRStorageUploadTask *_Nonnull)putFile:(NSURL *_Nonnull)fileURL - metadata:(FIRStorageMetadata *_Nullable)metadata; +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putFile:(NSURL * _Nonnull)fileURL metadata:(FIRStorageMetadata * _Nullable)metadata; /// Asynchronously uploads a file to the currently specified StorageReference, /// without additional metadata. /// putData should be used instead of putFile in Extensions. /// @param fileURL A URL representing the system file path of the object to be uploaded. /// @return An instance of StorageUploadTask, which can be used to monitor or manage the upload. -- (FIRStorageUploadTask *_Nonnull)putFile:(NSURL *_Nonnull)fileURL; +- (FIRStorageUploadTask * _Nonnull)putFile:(NSURL * _Nonnull)fileURL; /// Asynchronously uploads a file to the currently specified StorageReference. /// putData should be used instead of putFile in Extensions. /// \param fileURL A URL representing the system file path of the object to be uploaded. @@ -649,18 +1488,13 @@ SWIFT_CLASS_NAMED("StorageReference") /// /// /// returns: -/// An instance of StorageUploadTask, which can be used to monitor or manage the -/// upload. -- (FIRStorageUploadTask *_Nonnull)putFile:(NSURL *_Nonnull)fileURL - metadata:(FIRStorageMetadata *_Nullable)metadata - completion:(void (^_Nullable)(FIRStorageMetadata *_Nullable, - NSError *_Nullable))completion; -/// Asynchronously downloads the object at the StorageReference to a Data -/// instance in memory. A Data buffer of the provided max size will be allocated, so -/// ensure that the device has enough free memory to complete the download. For downloading large -/// files, write(toFile:) may be a better option. \param maxSize The maximum size in -/// bytes to download. If the download exceeds this size, the task will be cancelled and an error -/// will be returned. +/// An instance of StorageUploadTask, which can be used to monitor or manage the upload. +- (FIRStorageUploadTask * _Nonnull)putFile:(NSURL * _Nonnull)fileURL metadata:(FIRStorageMetadata * _Nullable)metadata completion:(void (^ _Nullable)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; +/// Asynchronously downloads the object at the StorageReference to a Data instance in memory. +/// A Data buffer of the provided max size will be allocated, so ensure that the device has enough free +/// memory to complete the download. For downloading large files, write(toFile:) may be a better option. +/// \param maxSize The maximum size in bytes to download. If the download exceeds this size, +/// the task will be cancelled and an error will be returned. /// /// \param completion A completion block that either returns the object data on success, /// or an error on failure. @@ -668,27 +1502,23 @@ SWIFT_CLASS_NAMED("StorageReference") /// /// returns: /// An StorageDownloadTask that can be used to monitor or manage the download. -- (FIRStorageDownloadTask *_Nonnull) - dataWithMaxSize:(int64_t)maxSize - completion:(void (^_Nonnull)(NSData *_Nullable, NSError *_Nullable))completion; +- (FIRStorageDownloadTask * _Nonnull)dataWithMaxSize:(int64_t)maxSize completion:(void (^ _Nonnull)(NSData * _Nullable, NSError * _Nullable))completion; /// Asynchronously retrieves a long lived download URL with a revokable token. /// This can be used to share the file with others, but can be revoked by a developer /// in the Firebase Console. -/// \param completion A completion block that either returns the URL on success, +/// \param completion A completion block that either returns the URL on success, /// or an error on failure. /// -- (void)downloadURLWithCompletion:(void (^_Nonnull)(NSURL *_Nullable, - NSError *_Nullable))completion; +- (void)downloadURLWithCompletion:(void (^ _Nonnull)(NSURL * _Nullable, NSError * _Nullable))completion; /// Asynchronously downloads the object at the current path to a specified system filepath. ///
      ///
    • -/// Returns An StorageDownloadTask that can be used to monitor or manage the -/// download. +/// Returns An StorageDownloadTask that can be used to monitor or manage the download. ///
    • ///
    -/// \param fileURL A file system URL representing the path the object should be downloaded to. +/// \param fileURL A file system URL representing the path the object should be downloaded to. /// -- (FIRStorageDownloadTask *_Nonnull)writeToFile:(NSURL *_Nonnull)fileURL; +- (FIRStorageDownloadTask * _Nonnull)writeToFile:(NSURL * _Nonnull)fileURL; /// Asynchronously downloads the object at the current path to a specified system filepath. /// \param fileURL A file system URL representing the path the object should be downloaded to. /// @@ -699,76 +1529,72 @@ SWIFT_CLASS_NAMED("StorageReference") /// /// returns: /// A StorageDownloadTask that can be used to monitor or manage the download. -- (FIRStorageDownloadTask *_Nonnull)writeToFile:(NSURL *_Nonnull)fileURL - completion:(void (^_Nullable)(NSURL *_Nullable, - NSError *_Nullable))completion; +- (FIRStorageDownloadTask * _Nonnull)writeToFile:(NSURL * _Nonnull)fileURL completion:(void (^ _Nullable)(NSURL * _Nullable, NSError * _Nullable))completion; /// Lists all items (files) and prefixes (folders) under this StorageReference. -/// This is a helper method for calling list() repeatedly until there are no more -/// results. Consistency of the result is not guaranteed if objects are inserted or removed while -/// this operation is executing. All results are buffered in memory. +/// This is a helper method for calling list() repeatedly until there are no more results. +/// Consistency of the result is not guaranteed if objects are inserted or removed while this +/// operation is executing. All results are buffered in memory. /// listAll(completion:) is only available for projects using Firebase Rules Version 2. -/// \param completion A completion handler that will be invoked with all items and prefixes under +/// \param completion A completion handler that will be invoked with all items and prefixes under /// the current StorageReference. /// -- (void)listAllWithCompletion:(void (^_Nonnull)(FIRStorageListResult *_Nullable, - NSError *_Nullable))completion; -/// List up to maxResults items (files) and prefixes (folders) under this -/// StorageReference. “/” is treated as a path delimiter. Firebase Storage does not support -/// unsupported object paths that end with “/” or contain two consecutive “/“s. All invalid objects -/// in GCS will be filtered. list(maxResults:completion:) is only available for -/// projects using Firebase Rules Version 2. \param maxResults The maximum number of results to -/// return in a single page. Must be greater than 0 and at most 1000. -/// -/// \param completion A completion handler that will be invoked with up to maxResults -/// items and prefixes under the current StorageReference. -/// -- (void)listWithMaxResults:(int64_t)maxResults - completion:(void (^_Nonnull)(FIRStorageListResult *_Nullable, - NSError *_Nullable))completion; -/// Resumes a previous call to list(maxResults:completion:), starting after a -/// pagination token. Returns the next set of items (files) and prefixes (folders) under this -/// StorageReference. “/” is treated as a path delimiter. Storage does not support -/// unsupported object paths that end with “/” or contain two consecutive “/“s. All invalid objects -/// in GCS will be filtered. list(maxResults:pageToken:completion:)is only available -/// for projects using Firebase Rules Version 2. \param maxResults The maximum number of results to -/// return in a single page. Must be greater than 0 and at most 1000. +- (void)listAllWithCompletion:(void (^ _Nonnull)(FIRStorageListResult * _Nullable, NSError * _Nullable))completion; +/// List up to maxResults items (files) and prefixes (folders) under this StorageReference. +/// “/” is treated as a path delimiter. Firebase Storage does not support unsupported object +/// paths that end with “/” or contain two consecutive “/“s. All invalid objects in GCS will be +/// filtered. +/// list(maxResults:completion:) is only available for projects using Firebase Rules Version 2. +/// \param maxResults The maximum number of results to return in a single page. Must be greater +/// than 0 and at most 1000. +/// +/// \param completion A completion handler that will be invoked with up to maxResults items and +/// prefixes under the current StorageReference. +/// +- (void)listWithMaxResults:(int64_t)maxResults completion:(void (^ _Nonnull)(FIRStorageListResult * _Nullable, NSError * _Nullable))completion; +/// Resumes a previous call to list(maxResults:completion:), starting after a pagination token. +/// Returns the next set of items (files) and prefixes (folders) under this StorageReference. +/// “/” is treated as a path delimiter. Storage does not support unsupported object +/// paths that end with “/” or contain two consecutive “/“s. All invalid objects in GCS will be +/// filtered. +/// list(maxResults:pageToken:completion:)is only available for projects using Firebase Rules +/// Version 2. +/// \param maxResults The maximum number of results to return in a single page. Must be greater +/// than 0 and at most 1000. /// /// \param pageToken A page token from a previous call to list. /// /// \param completion A completion handler that will be invoked with the next items and prefixes /// under the current StorageReference. /// -- (void)listWithMaxResults:(int64_t)maxResults - pageToken:(NSString *_Nonnull)pageToken - completion:(void (^_Nonnull)(FIRStorageListResult *_Nullable, - NSError *_Nullable))completion; +- (void)listWithMaxResults:(int64_t)maxResults pageToken:(NSString * _Nonnull)pageToken completion:(void (^ _Nonnull)(FIRStorageListResult * _Nullable, NSError * _Nullable))completion; /// Retrieves metadata associated with an object at the current path. -/// \param completion A completion block which returns the object metadata on success, +/// \param completion A completion block which returns the object metadata on success, /// or an error on failure. /// -- (void)metadataWithCompletion:(void (^_Nonnull)(FIRStorageMetadata *_Nullable, - NSError *_Nullable))completion; +- (void)metadataWithCompletion:(void (^ _Nonnull)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; /// Updates the metadata associated with an object at the current path. /// \param metadata A StorageMetadata object with the metadata to update. /// /// \param completion A completion block which returns the StorageMetadata on success, /// or an error on failure. /// -- (void)updateMetadata:(FIRStorageMetadata *_Nonnull)metadata - completion: - (void (^_Nullable)(FIRStorageMetadata *_Nullable, NSError *_Nullable))completion; +- (void)updateMetadata:(FIRStorageMetadata * _Nonnull)metadata completion:(void (^ _Nullable)(FIRStorageMetadata * _Nullable, NSError * _Nullable))completion; /// Deletes the object at the current path. -/// \param completion A completion block which returns a nonnull error on failure. +/// \param completion A completion block which returns a nonnull error on failure. /// -- (void)deleteWithCompletion:(void (^_Nullable)(NSError *_Nullable))completion; +- (void)deleteWithCompletion:(void (^ _Nullable)(NSError * _Nullable))completion; - (id _Nonnull)copy SWIFT_WARN_UNUSED_RESULT; - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT; -@property(nonatomic, readonly) NSUInteger hash; -@property(nonatomic, readonly, copy) NSString *_Nonnull description; +@property (nonatomic, readonly) NSUInteger hash; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end + + + + @class NSProgress; /// StorageTaskSnapshot represents an immutable view of a task. @@ -777,28 +1603,32 @@ SWIFT_CLASS_NAMED("StorageReference") SWIFT_CLASS_NAMED("StorageTaskSnapshot") @interface FIRStorageTaskSnapshot : NSObject /// The task this snapshot represents. -@property(nonatomic, readonly, strong) FIRStorageTask *_Nonnull task; +@property (nonatomic, readonly, strong) FIRStorageTask * _Nonnull task; /// Metadata returned by the task, or nil if no metadata returned. -@property(nonatomic, readonly, strong) FIRStorageMetadata *_Nullable metadata; +@property (nonatomic, readonly, strong) FIRStorageMetadata * _Nullable metadata; /// The StorageReference this task operates on. -@property(nonatomic, readonly, strong) FIRStorageReference *_Nonnull reference; +@property (nonatomic, readonly, strong) FIRStorageReference * _Nonnull reference; /// An object which tracks the progress of an upload or download. -@property(nonatomic, readonly, strong) NSProgress *_Nullable progress; +@property (nonatomic, readonly, strong) NSProgress * _Nullable progress; /// An error raised during task execution, or nil if no error occurred. -@property(nonatomic, readonly) NSError *_Nullable error; +@property (nonatomic, readonly) NSError * _Nullable error; /// The status of the task. -@property(nonatomic, readonly) enum FIRStorageTaskStatus status; -@property(nonatomic, readonly, copy) NSString *_Nonnull description; +@property (nonatomic, readonly) enum FIRStorageTaskStatus status; +@property (nonatomic, readonly, copy) NSString * _Nonnull description; - (nonnull instancetype)init SWIFT_UNAVAILABLE; + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); @end -typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageTaskStatus, "StorageTaskStatus", open){ - FIRStorageTaskStatusUnknown = 0, FIRStorageTaskStatusResume = 1, - FIRStorageTaskStatusProgress = 2, FIRStorageTaskStatusPause = 3, - FIRStorageTaskStatusSuccess = 4, FIRStorageTaskStatusFailure = 5, +typedef SWIFT_ENUM_NAMED(NSInteger, FIRStorageTaskStatus, "StorageTaskStatus", open) { + FIRStorageTaskStatusUnknown = 0, + FIRStorageTaskStatusResume = 1, + FIRStorageTaskStatusProgress = 2, + FIRStorageTaskStatusPause = 3, + FIRStorageTaskStatusSuccess = 4, + FIRStorageTaskStatusFailure = 5, }; + /// StorageUploadTask implements resumable uploads to a file in Firebase Storage. /// Uploads can be returned on completion with a completion callback, and can be monitored /// by attaching observers, or controlled by calling pause(), resume(), @@ -819,8 +1649,15 @@ SWIFT_CLASS_NAMED("StorageUploadTask") - (void)resume; @end +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/ios_pod/swift_headers/SwiftProtobuf-Swift.h b/ios_pod/swift_headers/SwiftProtobuf-Swift.h index a9edf66a0e..fb5b1f0f2c 100644 --- a/ios_pod/swift_headers/SwiftProtobuf-Swift.h +++ b/ios_pod/swift_headers/SwiftProtobuf-Swift.h @@ -1,246 +1,527 @@ // Copyright 2023 Google LLC -// Copied from Firebase iOS SDK 10.12.0. +// Copied from Firebase iOS SDK 10.13.0. -// Generated by Apple Swift version 5.6 (swiftlang-5.6.0.323.62 -// clang-1316.0.20.8) +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) #ifndef SWIFTPROTOBUF_SWIFT_H #define SWIFTPROTOBUF_SWIFT_H #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" #if !defined(__has_include) -#define __has_include(x) 0 +# define __has_include(x) 0 #endif #if !defined(__has_attribute) -#define __has_attribute(x) 0 +# define __has_attribute(x) 0 #endif #if !defined(__has_feature) -#define __has_feature(x) 0 +# define __has_feature(x) 0 #endif #if !defined(__has_warning) -#define __has_warning(x) 0 +# define __has_warning(x) 0 #endif #if __has_include() -#include +# include #endif +#pragma clang diagnostic ignored "-Wduplicate-method-match" #pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) #include -#include -#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else #include +#include +#include +#endif #if !defined(SWIFT_TYPEDEFS) -#define SWIFT_TYPEDEFS 1 -#if __has_include() -#include -#elif !defined(__cplusplus) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) typedef uint_least16_t char16_t; typedef uint_least32_t char32_t; -#endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #endif #if !defined(SWIFT_PASTE) -#define SWIFT_PASTE_HELPER(x, y) x##y -#define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) #endif #if !defined(SWIFT_METATYPE) -#define SWIFT_METATYPE(X) Class +# define SWIFT_METATYPE(X) Class #endif #if !defined(SWIFT_CLASS_PROPERTY) -#if __has_feature(objc_class_property) -#define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -#else -#define SWIFT_CLASS_PROPERTY(...) -#endif +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif #endif #if __has_attribute(objc_runtime_name) -#define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) #else -#define SWIFT_RUNTIME_NAME(X) +# define SWIFT_RUNTIME_NAME(X) #endif #if __has_attribute(swift_name) -#define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) #else -#define SWIFT_COMPILE_NAME(X) +# define SWIFT_COMPILE_NAME(X) #endif #if __has_attribute(objc_method_family) -#define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) #else -#define SWIFT_METHOD_FAMILY(X) +# define SWIFT_METHOD_FAMILY(X) #endif #if __has_attribute(noescape) -#define SWIFT_NOESCAPE __attribute__((noescape)) +# define SWIFT_NOESCAPE __attribute__((noescape)) #else -#define SWIFT_NOESCAPE +# define SWIFT_NOESCAPE #endif #if __has_attribute(ns_consumed) -#define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -#define SWIFT_RELEASES_ARGUMENT +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) -#define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else -#define SWIFT_WARN_UNUSED_RESULT +# define SWIFT_WARN_UNUSED_RESULT #endif #if __has_attribute(noreturn) -#define SWIFT_NORETURN __attribute__((noreturn)) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_NORETURN +# define SWIFT_NORETURN #endif #if !defined(SWIFT_CLASS_EXTRA) -#define SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_EXTRA #endif #if !defined(SWIFT_PROTOCOL_EXTRA) -#define SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_ENUM_EXTRA) -#define SWIFT_ENUM_EXTRA +# define SWIFT_ENUM_EXTRA #endif #if !defined(SWIFT_CLASS) -#if __has_attribute(objc_subclassing_restricted) -#define SWIFT_CLASS(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) \ - SWIFT_CLASS_EXTRA -#else -#define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#define SWIFT_CLASS_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -#endif +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif #endif #if !defined(SWIFT_RESILIENT_CLASS) -#if __has_attribute(objc_class_stub) -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) \ - SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) \ - __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -#else -#define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -#define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -#endif +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif #endif #if !defined(SWIFT_PROTOCOL) -#define SWIFT_PROTOCOL(SWIFT_NAME) \ - SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) \ - SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA #endif #if !defined(SWIFT_EXTENSION) -#define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) #endif #if !defined(OBJC_DESIGNATED_INITIALIZER) -#if __has_attribute(objc_designated_initializer) -#define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define OBJC_DESIGNATED_INITIALIZER +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if defined(__cplusplus) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept #endif -#if !defined(SWIFT_ENUM_ATTR) -#if defined(__has_attribute) && __has_attribute(enum_extensibility) -#define SWIFT_ENUM_ATTR(_extensibility) \ - __attribute__((enum_extensibility(_extensibility))) #else -#define SWIFT_ENUM_ATTR(_extensibility) +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif -#if !defined(SWIFT_ENUM) -#define SWIFT_ENUM(_type, _name, _extensibility) \ - enum _name : _type _name; \ - enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -#if __has_feature(generalized_swift_name) -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); \ - enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) \ - SWIFT_ENUM_EXTRA _name : _type +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SwiftProtobuf",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__x86_64__) && __x86_64__ +// Generated by Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51) +#ifndef SWIFTPROTOBUF_SWIFT_H +#define SWIFTPROTOBUF_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wduplicate-method-match" +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#else +#include +#include +#include +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) #else -#define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) \ - SWIFT_ENUM(_type, _name, _extensibility) +# define SWIFT_NORETURN #endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif #endif #if !defined(SWIFT_UNAVAILABLE) -#define SWIFT_UNAVAILABLE __attribute__((unavailable)) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) #endif #if !defined(SWIFT_UNAVAILABLE_MSG) -#define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) #endif #if !defined(SWIFT_AVAILABILITY) -#define SWIFT_AVAILABILITY(plat, ...) \ - __attribute__((availability(plat, __VA_ARGS__))) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) #endif #if !defined(SWIFT_WEAK_IMPORT) -#define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) #endif #if !defined(SWIFT_DEPRECATED) -#define SWIFT_DEPRECATED __attribute__((deprecated)) +# define SWIFT_DEPRECATED __attribute__((deprecated)) #endif #if !defined(SWIFT_DEPRECATED_MSG) -#define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) #endif #if __has_feature(attribute_diagnose_if_objc) -#define SWIFT_DEPRECATED_OBJC(Msg) \ - __attribute__((diagnose_if(1, Msg, "warning"))) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) #else -#define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) #endif +#if defined(__OBJC__) #if !defined(IBSegueAction) -#define IBSegueAction +# define IBSegueAction +#endif #endif #if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif #if defined(__cplusplus) -#define SWIFT_EXTERN extern "C" +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT noexcept +#endif #else -#define SWIFT_EXTERN extern +#if !defined(SWIFT_NOEXCEPT) +# define SWIFT_NOEXCEPT #endif #endif +#if defined(__cplusplus) +#if !defined(SWIFT_CXX_INT_DEFINED) +#define SWIFT_CXX_INT_DEFINED +namespace swift { +using Int = ptrdiff_t; +using UInt = size_t; +} +#endif +#endif +#if defined(__OBJC__) #if __has_feature(modules) #if __has_warning("-Watimport-in-framework-header") #pragma clang diagnostic ignored "-Watimport-in-framework-header" #endif #endif +#endif #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" #pragma clang diagnostic ignored "-Wduplicate-method-arg" #if __has_warning("-Wpragma-clang-attribute") -#pragma clang diagnostic ignored "-Wpragma-clang-attribute" +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" #endif #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" #if __has_attribute(external_source_symbol) -#pragma push_macro("any") -#undef any -#pragma clang attribute push( \ - __attribute__((external_source_symbol( \ - language = "Swift", defined_in = "SwiftProtobuf", \ - generated_declaration))), \ - apply_to = any(function, enum, objc_interface, objc_category, \ - objc_protocol)) -#pragma pop_macro("any") +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SwiftProtobuf",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") #endif +#if defined(__OBJC__) +#endif +#if defined(__cplusplus) +#endif #if __has_attribute(external_source_symbol) -#pragma clang attribute pop +# pragma clang attribute pop #endif #pragma clang diagnostic pop #endif + +#else +#error unsupported Swift architecture +#endif diff --git a/messaging/integration_test/Podfile b/messaging/integration_test/Podfile index 7ed460008d..6e4903f8b2 100644 --- a/messaging/integration_test/Podfile +++ b/messaging/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Messaging', '10.12.0' + pod 'Firebase/Messaging', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Messaging', '10.12.0' + pod 'Firebase/Messaging', '10.13.0' end post_install do |installer| diff --git a/messaging/messaging_java/build.gradle b/messaging/messaging_java/build.gradle index 1c510bb14b..5289dac1a8 100644 --- a/messaging/messaging_java/build.gradle +++ b/messaging/messaging_java/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' diff --git a/release_build_files/Android/firebase_dependencies.gradle b/release_build_files/Android/firebase_dependencies.gradle index 72c9ad0c9f..67d8d1120f 100644 --- a/release_build_files/Android/firebase_dependencies.gradle +++ b/release_build_files/Android/firebase_dependencies.gradle @@ -131,7 +131,7 @@ project.afterEvaluate { // Add the bill-of-materials project.dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') } for (String lib : firebaseCpp.dependencies.libSet) { // Messaging includes an aar, which to be depended on properly requires diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 24f7ac2017..15827c0fb9 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -86,7 +86,7 @@ distributed as part of the core Firebase Feature | Required Libraries and Gradle Packages -------------------------- | -------------------------------------- -All Firebase SDKs | platform(com.google.firebase:firebase-bom:32.2.0) +All Firebase SDKs | platform(com.google.firebase:firebase-bom:32.2.2) | | (Android Bill of Materials) Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a @@ -228,49 +228,49 @@ Feature | Required Frameworks and Cocoapods -------------------------- | --------------------------------------- Firebase Analytics | firebase_analytics.xcframework | | firebase.xcframework -| | Firebase/Analytics Cocoapod (10.12.0) +| | Firebase/Analytics Cocoapod (10.13.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (10.12.0) +| | Firebase/AppCheck Cocoapod (10.13.0) Firebase Authentication | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Auth Cocoapod (10.13.0) Firebase Dynamic Links | firebase_dynamic_links.xcframework | | firebase.xcframework -| | Firebase/DynamicLinks Cocoapod (10.12.0) +| | Firebase/DynamicLinks Cocoapod (10.13.0) Cloud Firestore | firebase_firestore.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Firestore Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Firestore Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Firebase Functions | firebase_functions.xcframework | | firebase_auth.xcframework (optional) | | firebase.xcframework -| | Firebase/Functions Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Functions Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Google Mobile Ads | firebase_gma.xcframework | | firebase.xcframework -| | Firebase/CoreOnly Cocoapod (10.12.0) -| | Google-Mobile-Ads-SDK Cocoapod (10.8.0) +| | Firebase/CoreOnly Cocoapod (10.13.0) +| | Google-Mobile-Ads-SDK Cocoapod (10.9.0) Firebase Installations | firebase_installations.xcframework | | firebase.xcframework -| | FirebaseInstallations Cocoapod (10.12.0) +| | FirebaseInstallations Cocoapod (10.13.0) Firebase Cloud Messaging | firebase_messaging.xcframework | | firebase.xcframework -| | Firebase/Messaging Cocoapod (10.12.0) +| | Firebase/Messaging Cocoapod (10.13.0) Firebase Realtime Database | firebase_database.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Database Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Database Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Firebase Remote Config | firebase_remote_config.xcframework | | firebase.xcframework -| | Firebase/RemoteConfig Cocoapod (10.12.0) +| | Firebase/RemoteConfig Cocoapod (10.13.0) Firebase Storage | firebase_storage.xcframework | | firebase_auth.xcframework | | firebase.xcframework -| | Firebase/Storage Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Storage Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -290,49 +290,49 @@ Feature | Required Libraries and Cocoapods -------------------------- | ----------------------------------------- Firebase Analytics | libfirebase_analytics.a | | libfirebase_app.a -| | Firebase/Analytics Cocoapod (10.12.0) +| | Firebase/Analytics Cocoapod (10.13.0) Firebase App Check | firebase_app_check.xcframework | | firebase.xcframework -| | Firebase/AppCheck Cocoapod (10.12.0) +| | Firebase/AppCheck Cocoapod (10.13.0) Firebase Authentication | libfirebase_auth.a | | libfirebase_app.a -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Auth Cocoapod (10.13.0) Firebase Dynamic Links | libfirebase_dynamic_links.a | | libfirebase_app.a -| | Firebase/DynamicLinks Cocoapod (10.12.0) +| | Firebase/DynamicLinks Cocoapod (10.13.0) Cloud Firestore | libfirebase_firestore.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Firestore Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Firestore Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Firebase Functions | libfirebase_functions.a | | libfirebase_app.a | | libfirebase_auth.a (optional) -| | Firebase/Functions Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Functions Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Google Mobile Ads | libfirebase_gma.a | | libfirebase_app.a -| | Firebase/CoreOnly Cocoapod (10.12.0) -| | Google-Mobile-Ads-SDK Cocoapod (10.8.0) +| | Firebase/CoreOnly Cocoapod (10.13.0) +| | Google-Mobile-Ads-SDK Cocoapod (10.9.0) Firebase Installations | libfirebase_installations.a | | libfirebase_app.a -| | FirebaseInstallations Cocoapod (10.12.0) +| | FirebaseInstallations Cocoapod (10.13.0) Firebase Cloud Messaging | libfirebase_messaging.a | | libfirebase_app.a -| | Firebase/CloudMessaging Cocoapod (10.12.0) +| | Firebase/CloudMessaging Cocoapod (10.13.0) Firebase Realtime Database | libfirebase_database.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Database Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Database Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Firebase Remote Config | libfirebase_remote_config.a | | libfirebase_app.a -| | Firebase/RemoteConfig Cocoapod (10.12.0) +| | Firebase/RemoteConfig Cocoapod (10.13.0) Firebase Storage | libfirebase_storage.a | | libfirebase_app.a | | libfirebase_auth.a -| | Firebase/Storage Cocoapod (10.12.0) -| | Firebase/Auth Cocoapod (10.12.0) +| | Firebase/Storage Cocoapod (10.13.0) +| | Firebase/Auth Cocoapod (10.13.0) Important: Each version of the Firebase C++ SDK supports a specific version of the Firebase iOS SDK. Please ensure that you reference the Cocoapod versions @@ -627,8 +627,11 @@ workflow use only during the development of your app, not for publicly shipping code. ## Release Notes -### Upcoming Release +### 11.4.0 - Changes + - General (Android): Update to Firebase Android BoM version 32.2.2. + - General (iOS): Update to Firebase Cocoapods version 10.13.0. + - General (iOS): 32-bit iOS builds (i386 and armv7) are no longer supported. - GMA (Android): Fixed a crash when initializing GMA without a Firebase App. ### 11.3.0 diff --git a/remote_config/integration_test/Podfile b/remote_config/integration_test/Podfile index 8270b8f5d7..0c0ee247d1 100644 --- a/remote_config/integration_test/Podfile +++ b/remote_config/integration_test/Podfile @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/RemoteConfig', '10.12.0' + pod 'Firebase/RemoteConfig', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/RemoteConfig', '10.12.0' + pod 'Firebase/RemoteConfig', '10.13.0' end post_install do |installer| diff --git a/remote_config/remote_config_resources/build.gradle b/remote_config/remote_config_resources/build.gradle index bf99ad1014..cf94b86b23 100644 --- a/remote_config/remote_config_resources/build.gradle +++ b/remote_config/remote_config_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-config' } diff --git a/scripts/gha/build_ios_tvos.py b/scripts/gha/build_ios_tvos.py index 8b4dfa2d75..d314024e58 100644 --- a/scripts/gha/build_ios_tvos.py +++ b/scripts/gha/build_ios_tvos.py @@ -55,11 +55,11 @@ 'firebase_installations', 'firebase_messaging', 'firebase_remote_config', 'firebase_storage'), 'device': { - 'architectures' : ('arm64', 'armv7'), + 'architectures' : ['arm64'], 'toolchain' : 'cmake/toolchains/ios.cmake', }, 'simulator': { - 'architectures' : ('arm64', 'x86_64', 'i386'), + 'architectures' : ['arm64', 'x86_64'], 'toolchain': 'cmake/toolchains/ios_simulator.cmake', } }, @@ -71,12 +71,12 @@ 'firebase_messaging', 'firebase_remote_config', 'firebase_storage'), 'device': { - 'architectures' : ('arm64',), + 'architectures' : ['arm64'], 'toolchain' : 'cmake/toolchains/apple.toolchain.cmake', 'toolchain_platform': 'TVOS', }, 'simulator': { - 'architectures' : ('x86_64',), + 'architectures' : ['x86_64'], 'toolchain' : 'cmake/toolchains/apple.toolchain.cmake', 'toolchain_platform': 'SIMULATOR_TVOS' } @@ -127,7 +127,7 @@ def arrange_frameworks(archive_output_path): def build_universal_framework(frameworks_path, targets): """Create universal frameworks if possible. - If all architectures (eg: arm64, armv7 etc) and platforms (device, simulator) + If all architectures (eg: arm64, etc) and platforms (device, simulator) were built, combine all of the libraries into a single universal framework. Args: frameworks_path (str): Root path containing subdirectories for each @@ -140,7 +140,7 @@ def build_universal_framework(frameworks_path, targets): - firebase.framework - firebase_analytics.framework ... - - simulator-i386 + - simulator-x86_64 ... - tvos - device-arm64 @@ -154,7 +154,7 @@ def build_universal_framework(frameworks_path, targets): - ios - device-arm64 ... - - simulator-i386 + - simulator-x86_64 ... ... - universal <-------------- Newly created @@ -178,7 +178,7 @@ def build_universal_framework(frameworks_path, targets): framework_os_path = os.path.join(frameworks_path, apple_os) # Extract list of all built platform-architecture combinations into a map. # Map looks like this, - # {'device': ['arm64', 'armv7'], 'simulator': ['x86_64']} + # {'device': ['arm64''], 'simulator': ['x86_64']} platform_variant_architecture_dirs = os.listdir(framework_os_path) platform_variant_arch_map = defaultdict(list) for variant_architecture in platform_variant_architecture_dirs: @@ -273,7 +273,7 @@ def build_xcframeworks(frameworks_path, xcframeworks_path, template_info_plist, """Build xcframeworks combining libraries for different operating systems. Combine frameworks for different operating systems (ios, tvos), architectures - (arm64, armv7, x86_64 etc) per platform variant (device, simulator). + (arm64, x86_64 etc) per platform variant (device, simulator). This makes it super convenient for developers to use a single deliverable in XCode and develop for multiple platforms/operating systems in one project. @@ -291,7 +291,7 @@ def build_xcframeworks(frameworks_path, xcframeworks_path, template_info_plist, - firebase.framework - firebase_analytics.framework ... - - simulator-i386 + - simulator-x86_64 ... - tvos - device-arm64 @@ -304,11 +304,11 @@ def build_xcframeworks(frameworks_path, xcframeworks_path, template_info_plist, Output: /xcframeworks <----------- - firebase.xcframework - Info.plist <----------- - - ios-arm64_armv7 <-- + - ios-arm64 <-- - firebase.framework - firebase <---- - Headers <---- - - ios-arm64_i386_x86_64-simulator <--- + - ios-arm64_x86_64-simulator <--- - firebase.framework - firebase - Headers @@ -320,10 +320,10 @@ def build_xcframeworks(frameworks_path, xcframeworks_path, template_info_plist, ... - firebase_auth.xcframework <-- - Info.plist - - ios-arm64_armv7 + - ios-arm64 - firebase_auth.framework - firebase_auth - - ios-arm64_i386_x86_64-simulator + - ios-arm64_x86_64-simulator - firebase_auth.framework - firebase_auth - tvos-arm64 @@ -340,7 +340,7 @@ def build_xcframeworks(frameworks_path, xcframeworks_path, template_info_plist, platform_variant_architecture_dirs = os.listdir(framework_os_path) # Extract list of all built platform-architecture combinations into a map. # Map looks like this, - # {'device': ['arm64', 'armv7'], 'simulator': ['x86_64']} + # {'device': ['arm64'], 'simulator': ['x86_64']} platform_variant_arch_map = defaultdict(list) for variant_architecture in platform_variant_architecture_dirs: # Skip directories not of the format platform-arch (eg: universal) @@ -385,7 +385,7 @@ def build_xcframeworks(frameworks_path, xcframeworks_path, template_info_plist, # device is treated as default platform variant and we do not add any # suffix at the end. For all other variants, add them as suffix. xcframework_key_parts.append(platform_variant) - # Eg: ios-arm64_armv7, tvos-x86_64-simulator + # Eg: ios-arm64, tvos-x86_64-simulator xcframework_key = '-'.join(xcframework_key_parts) # /xcframeworks/.xcframework/-/ @@ -584,7 +584,7 @@ def parse_cmdline_args(): default=('device', 'simulator'), help='List of platforms to build for.') parser.add_argument('-a', '--architecture', nargs='+', - default=('arm64', 'armv7', 'x86_64', 'i386'), + default=('arm64', 'x86_64'), help='List of architectures to build for.') parser.add_argument('-t', '--target', nargs='+', default=( 'firebase_analytics', 'firebase_app_check', diff --git a/scripts/gha/integration_testing/gameloop_apple/gameloop/Info.plist b/scripts/gha/integration_testing/gameloop_apple/gameloop/Info.plist index 0b5df7a546..056f2004e6 100644 --- a/scripts/gha/integration_testing/gameloop_apple/gameloop/Info.plist +++ b/scripts/gha/integration_testing/gameloop_apple/gameloop/Info.plist @@ -28,7 +28,7 @@ Main UIRequiredDeviceCapabilities - armv7 + arm64 UISupportedInterfaceOrientations diff --git a/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp/Info.plist b/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp/Info.plist index 16be3b6811..b6caf756b8 100644 --- a/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp/Info.plist +++ b/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp/Info.plist @@ -26,7 +26,7 @@ Main UIRequiredDeviceCapabilities - armv7 + arm64 UISupportedInterfaceOrientations diff --git a/storage/integration_test/Podfile b/storage/integration_test/Podfile index deb9c56c6f..1c27de3760 100644 --- a/storage/integration_test/Podfile +++ b/storage/integration_test/Podfile @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static target 'integration_test' do platform :ios, '11.0' - pod 'Firebase/Storage', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Storage', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end target 'integration_test_tvos' do platform :tvos, '12.0' - pod 'Firebase/Storage', '10.12.0' - pod 'Firebase/Auth', '10.12.0' + pod 'Firebase/Storage', '10.13.0' + pod 'Firebase/Auth', '10.13.0' end post_install do |installer| diff --git a/storage/storage_resources/build.gradle b/storage/storage_resources/build.gradle index 3f286e93fb..7e5ca796e2 100644 --- a/storage/storage_resources/build.gradle +++ b/storage/storage_resources/build.gradle @@ -49,7 +49,7 @@ android { } dependencies { - implementation platform('com.google.firebase:firebase-bom:32.2.0') + implementation platform('com.google.firebase:firebase-bom:32.2.2') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-storage' } From f198c6f87e3d762cc3bfdac80a6b38541e5e8641 Mon Sep 17 00:00:00 2001 From: Cynthia J Date: Sun, 6 Aug 2023 15:01:32 -0700 Subject: [PATCH 14/14] feat(auth): Add emulator support (#1400) * add auth emulator support * fix ios number parse * update the documentation part * reduce lint warning * more lint warnings * code format * use environment to decide using emulator or not * fix a typo * add readme entry for FirebaseApp.GetApps() * update for review comment * add missing ` --------- Co-authored-by: Cynthia Jiang --- .gitignore | 2 + app/src/include/firebase/app.h | 3 -- auth/src/android/auth_android.cc | 30 +++++++++++++++ auth/src/desktop/auth_desktop.h | 1 + auth/src/desktop/rpcs/auth_request.cc | 38 +++++++++++++++++++ auth/src/desktop/rpcs/auth_request.h | 18 +++++++++ .../desktop/rpcs/create_auth_uri_request.cc | 9 ++--- .../desktop/rpcs/delete_account_request.cc | 9 ++--- .../desktop/rpcs/get_account_info_request.cc | 9 ++--- .../rpcs/get_oob_confirmation_code_request.cc | 9 ++--- .../desktop/rpcs/reset_password_request.cc | 9 ++--- .../desktop/rpcs/set_account_info_request.cc | 9 ++--- .../desktop/rpcs/sign_up_new_user_request.cc | 9 ++--- .../desktop/rpcs/verify_assertion_request.cc | 9 ++--- .../rpcs/verify_custom_token_request.cc | 9 ++--- .../desktop/rpcs/verify_password_request.cc | 9 ++--- auth/src/include/firebase/auth.h | 1 + auth/src/ios/auth_ios.mm | 23 +++++++++++ release_build_files/readme.md | 3 ++ 19 files changed, 156 insertions(+), 53 deletions(-) diff --git a/.gitignore b/.gitignore index be6008e2cc..d86b432e3c 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,8 @@ gcs_key_file.json *_build/ cmake-build-*/ testing/test_framework/external/ +CMakeFiles/ +CMakeCache.txt # XCode user specific folders **/xcuserdata/ diff --git a/app/src/include/firebase/app.h b/app/src/include/firebase/app.h index f32f8bf33f..03f0ad2dde 100644 --- a/app/src/include/firebase/app.h +++ b/app/src/include/firebase/app.h @@ -571,11 +571,8 @@ class App { /// Get the App with the given name, or nullptr if none have been created. static App* GetInstance(const char* name); -#if !defined(DOXYGEN) - // Hidden from the public documentation for now /// Get all the apps, including the default one. static std::vector GetApps(); -#endif // !defined(DOXYGEN) #ifndef SWIG // diff --git a/auth/src/android/auth_android.cc b/auth/src/android/auth_android.cc index 7b588dbb9b..2f8ccda645 100644 --- a/auth/src/android/auth_android.cc +++ b/auth/src/android/auth_android.cc @@ -17,6 +17,8 @@ #include #include +#include + #include "app/src/assert.h" #include "app/src/embedded_file.h" #include "app/src/include/firebase/internal/mutex.h" @@ -53,6 +55,7 @@ using util::JniStringToString; X(RemoveIdTokenListener, "removeIdTokenListener", \ "(Lcom/google/firebase/auth/FirebaseAuth$IdTokenListener;)V"), \ X(SignOut, "signOut", "()V"), \ + X(UseEmulator, "useEmulator", "(Ljava/lang/String;I)V"), \ X(FetchSignInMethodsForEmail, "fetchSignInMethodsForEmail", \ "(Ljava/lang/String;)" \ "Lcom/google/android/gms/tasks/Task;"), \ @@ -185,6 +188,31 @@ void UpdateCurrentUser(AuthData* auth_data) { } } +const char* const kEmulatorLocalHost = "10.0.2.2"; +const char* const kEmulatorPort = "9099"; +void CheckEmulator(AuthData* auth_data) { + JNIEnv* env = Env(auth_data); + + // Use emulator as long as this env variable is set, regardless its value. + if (std::getenv("USE_AUTH_EMULATOR") == nullptr) { + LogDebug("Using Auth Prod for testing."); + return; + } + + // Use AUTH_EMULATOR_PORT if it is set to non empty string, + // otherwise use the default port. + uint32_t port = std::stoi(kEmulatorPort); + if (std::getenv("AUTH_EMULATOR_PORT") != nullptr) { + port = std::stoi(std::getenv("AUTH_EMULATOR_PORT")); + } + + jstring j_host = env->NewStringUTF(kEmulatorLocalHost); + env->CallVoidMethod(AuthImpl(auth_data), + auth::GetMethodId(auth::kUseEmulator), j_host, port); + env->DeleteLocalRef(j_host); + firebase::util::CheckAndClearJniExceptions(env); +} + // Release cached Java classes. static void ReleaseClasses(JNIEnv* env) { ReleaseAuthClasses(env); @@ -269,6 +297,8 @@ void Auth::InitPlatformAuth(AuthData* auth_data) { // Ensure our User is in-line with underlying API's user. // It's possible for a user to already be logged-in on start-up. UpdateCurrentUser(auth_data); + + CheckEmulator(auth_data); } void Auth::DestroyPlatformAuth(AuthData* auth_data) { diff --git a/auth/src/desktop/auth_desktop.h b/auth/src/desktop/auth_desktop.h index 6210d47712..2d407cab16 100644 --- a/auth/src/desktop/auth_desktop.h +++ b/auth/src/desktop/auth_desktop.h @@ -16,6 +16,7 @@ #define FIREBASE_AUTH_SRC_DESKTOP_AUTH_DESKTOP_H_ #include +#include #include "app/rest/request.h" #include "app/src/scheduler.h" diff --git a/auth/src/desktop/rpcs/auth_request.cc b/auth/src/desktop/rpcs/auth_request.cc index 4db7ac46ae..c9af69f789 100644 --- a/auth/src/desktop/rpcs/auth_request.cc +++ b/auth/src/desktop/rpcs/auth_request.cc @@ -23,6 +23,7 @@ #include "app/src/heartbeat/heartbeat_controller_desktop.h" #include "app/src/include/firebase/app.h" #include "app/src/include/firebase/internal/mutex.h" +#include "firebase/log.h" namespace firebase { namespace auth { @@ -37,6 +38,8 @@ AuthRequest::AuthRequest(::firebase::App& app, const char* schema, // dependencies upon other parts of this library. This complication is due to // the way the tests are currently configured where each library has minimal // dependencies. + + CheckEmulator(); static std::string auth_user_agent; // NOLINT static std::string extended_auth_user_agent; // NOLINT static Mutex* user_agent_mutex = new Mutex(); @@ -77,5 +80,40 @@ AuthRequest::AuthRequest(::firebase::App& app, const char* schema, } } +std::string AuthRequest::GetUrl() { + if (emulator_url.empty()) { + std::string url(kHttps); + url += kServerURL; + return url; + } else { + std::string url(kHttp); + url += emulator_url; + url += kServerURL; + return url; + } +} + +void AuthRequest::CheckEmulator() { + if (!emulator_url.empty()) { + LogDebug("Emulator Url already set: %s", emulator_url.c_str()); + return; + } + // Use emulator as long as this env variable is set, regardless its value. + if (std::getenv("USE_AUTH_EMULATOR") == nullptr) { + LogDebug("Using Auth Prod for testing."); + return; + } + + emulator_url.append(kEmulatorLocalHost); + emulator_url.append(":"); + // Use AUTH_EMULATOR_PORT if it is set to non empty string, + // otherwise use the default port. + if (std::getenv("AUTH_EMULATOR_PORT") == nullptr) { + emulator_url.append(kEmulatorPort); + } else { + emulator_url.append(std::getenv("AUTH_EMULATOR_PORT")); + } +} + } // namespace auth } // namespace firebase diff --git a/auth/src/desktop/rpcs/auth_request.h b/auth/src/desktop/rpcs/auth_request.h index 670571e5af..88835e946c 100644 --- a/auth/src/desktop/rpcs/auth_request.h +++ b/auth/src/desktop/rpcs/auth_request.h @@ -17,6 +17,8 @@ #ifndef FIREBASE_AUTH_SRC_DESKTOP_RPCS_AUTH_REQUEST_H_ #define FIREBASE_AUTH_SRC_DESKTOP_RPCS_AUTH_REQUEST_H_ +#include + #include "app/rest/request_json.h" #include "app/src/include/firebase/app.h" #include "auth/request_generated.h" @@ -28,6 +30,16 @@ namespace auth { // Key name for header when sending language code data. extern const char* kHeaderFirebaseLocale; +const char* const kHttps = "https://"; + +const char* const kHttp = "http://"; + +const char* const kServerURL = + "www.googleapis.com/identitytoolkit/v3/relyingparty/"; + +const char* const kEmulatorLocalHost = "localhost"; +const char* const kEmulatorPort = "9099"; + class AuthRequest : public firebase::rest::RequestJson { public: @@ -39,6 +51,12 @@ class AuthRequest bool deliver_heartbeat) : AuthRequest(app, reinterpret_cast(schema), deliver_heartbeat) {} + + std::string GetUrl(); + + private: + void CheckEmulator(); + std::string emulator_url; }; } // namespace auth diff --git a/auth/src/desktop/rpcs/create_auth_uri_request.cc b/auth/src/desktop/rpcs/create_auth_uri_request.cc index 04ee9efc2e..e0de666b47 100644 --- a/auth/src/desktop/rpcs/create_auth_uri_request.cc +++ b/auth/src/desktop/rpcs/create_auth_uri_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/create_auth_uri_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" #include "app/src/log.h" @@ -27,11 +29,8 @@ CreateAuthUriRequest::CreateAuthUriRequest(::firebase::App& app, : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "createAuthUri?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "createAuthUri?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/delete_account_request.cc b/auth/src/desktop/rpcs/delete_account_request.cc index efe3935738..359fb0d74c 100644 --- a/auth/src/desktop/rpcs/delete_account_request.cc +++ b/auth/src/desktop/rpcs/delete_account_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/delete_account_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" @@ -25,11 +27,8 @@ DeleteAccountRequest::DeleteAccountRequest(::firebase::App& app, : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "deleteAccount?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "deleteAccount?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/get_account_info_request.cc b/auth/src/desktop/rpcs/get_account_info_request.cc index 0dad730f18..e5f6cd4e78 100644 --- a/auth/src/desktop/rpcs/get_account_info_request.cc +++ b/auth/src/desktop/rpcs/get_account_info_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/get_account_info_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" @@ -39,11 +41,8 @@ GetAccountInfoRequest::GetAccountInfoRequest(::firebase::App& app, void GetAccountInfoRequest::SetUrl(const char* const api_key) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "getAccountInfo?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "getAccountInfo?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/get_oob_confirmation_code_request.cc b/auth/src/desktop/rpcs/get_oob_confirmation_code_request.cc index 3087837a6a..3a1805884c 100644 --- a/auth/src/desktop/rpcs/get_oob_confirmation_code_request.cc +++ b/auth/src/desktop/rpcs/get_oob_confirmation_code_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/get_oob_confirmation_code_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" @@ -25,11 +27,8 @@ GetOobConfirmationCodeRequest::GetOobConfirmationCodeRequest( : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "getOobConfirmationCode?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "getOobConfirmationCode?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/reset_password_request.cc b/auth/src/desktop/rpcs/reset_password_request.cc index b8fc65654e..a8c64d1ffe 100644 --- a/auth/src/desktop/rpcs/reset_password_request.cc +++ b/auth/src/desktop/rpcs/reset_password_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/reset_password_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" #include "app/src/log.h" @@ -28,11 +30,8 @@ ResetPasswordRequest::ResetPasswordRequest(::firebase::App& app, : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "resetPassword?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "resetPassword?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/set_account_info_request.cc b/auth/src/desktop/rpcs/set_account_info_request.cc index 48105661b1..618cbef902 100644 --- a/auth/src/desktop/rpcs/set_account_info_request.cc +++ b/auth/src/desktop/rpcs/set_account_info_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/set_account_info_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" @@ -25,11 +27,8 @@ SetAccountInfoRequest::SetAccountInfoRequest(::firebase::App& app, : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "setAccountInfo?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "setAccountInfo?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/sign_up_new_user_request.cc b/auth/src/desktop/rpcs/sign_up_new_user_request.cc index 5a098b4b10..bd8d5ed099 100644 --- a/auth/src/desktop/rpcs/sign_up_new_user_request.cc +++ b/auth/src/desktop/rpcs/sign_up_new_user_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/sign_up_new_user_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" @@ -53,11 +55,8 @@ SignUpNewUserRequest::SignUpNewUserRequest(::firebase::App& app, void SignUpNewUserRequest::SetUrl(const char* api_key) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "signupNewUser?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "signupNewUser?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/verify_assertion_request.cc b/auth/src/desktop/rpcs/verify_assertion_request.cc index 84dc5e4f70..cca72d5787 100644 --- a/auth/src/desktop/rpcs/verify_assertion_request.cc +++ b/auth/src/desktop/rpcs/verify_assertion_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/verify_assertion_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" @@ -26,11 +28,8 @@ VerifyAssertionRequest::VerifyAssertionRequest(::firebase::App& app, : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "verifyAssertion?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "verifyAssertion?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/verify_custom_token_request.cc b/auth/src/desktop/rpcs/verify_custom_token_request.cc index 83754219f0..af53e6f3f2 100644 --- a/auth/src/desktop/rpcs/verify_custom_token_request.cc +++ b/auth/src/desktop/rpcs/verify_custom_token_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/verify_custom_token_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" #include "app/src/log.h" @@ -27,11 +29,8 @@ VerifyCustomTokenRequest::VerifyCustomTokenRequest(::firebase::App& app, : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "verifyCustomToken?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "verifyCustomToken?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/desktop/rpcs/verify_password_request.cc b/auth/src/desktop/rpcs/verify_password_request.cc index bbfddfa338..db840685a3 100644 --- a/auth/src/desktop/rpcs/verify_password_request.cc +++ b/auth/src/desktop/rpcs/verify_password_request.cc @@ -14,6 +14,8 @@ #include "auth/src/desktop/rpcs/verify_password_request.h" +#include + #include "app/src/assert.h" #include "app/src/include/firebase/app.h" #include "app/src/log.h" @@ -28,11 +30,8 @@ VerifyPasswordRequest::VerifyPasswordRequest(::firebase::App& app, : AuthRequest(app, request_resource_data, true) { FIREBASE_ASSERT_RETURN_VOID(api_key); - const char api_host[] = - "https://www.googleapis.com/identitytoolkit/v3/relyingparty/" - "verifyPassword?key="; - std::string url; - url.reserve(strlen(api_host) + strlen(api_key)); + const char api_host[] = "verifyPassword?key="; + std::string url = GetUrl(); url.append(api_host); url.append(api_key); set_url(url.c_str()); diff --git a/auth/src/include/firebase/auth.h b/auth/src/include/firebase/auth.h index bec3ce8ff8..f9c8bfbf36 100644 --- a/auth/src/include/firebase/auth.h +++ b/auth/src/include/firebase/auth.h @@ -17,6 +17,7 @@ #ifndef FIREBASE_AUTH_SRC_INCLUDE_FIREBASE_AUTH_H_ #define FIREBASE_AUTH_SRC_INCLUDE_FIREBASE_AUTH_H_ +#include #include #include "firebase/app.h" diff --git a/auth/src/ios/auth_ios.mm b/auth/src/ios/auth_ios.mm index b8b52573a1..e66af55dd6 100644 --- a/auth/src/ios/auth_ios.mm +++ b/auth/src/ios/auth_ios.mm @@ -41,6 +41,9 @@ @implementation FIRCPPAuthListenerHandle namespace firebase { namespace auth { +const char *const kEmulatorLocalHost = "localhost"; +const char *const kEmulatorPort = "9099"; + static const struct { int ios_error; AuthError cpp_error; @@ -154,6 +157,24 @@ void UpdateCurrentUser(AuthData *auth_data) { SetUserImpl(auth_data, user); } +void CheckEmulator(AuthData *auth_data) { + // Use emulator as long as this env variable is set, regardless its value. + if (std::getenv("USE_AUTH_EMULATOR") == nullptr) { + LogDebug("Using Auth Prod for testing."); + return; + } + + // Use AUTH_EMULATOR_PORT if it is set to non empty string, + // otherwise use the default port. + uint32_t port = std::stoi(kEmulatorPort); + if (std::getenv("AUTH_EMULATOR_PORT") != nullptr) { + port = std::stoi(std::getenv("AUTH_EMULATOR_PORT")); + } + + NSUInteger ns_port = port; + [AuthImpl(auth_data) useEmulatorWithHost:@(kEmulatorLocalHost) port:ns_port]; +} + // Platform-specific method to initialize AuthData. void Auth::InitPlatformAuth(AuthData *auth_data) { FIRCPPAuthListenerHandle *listener_cpp_handle = [[FIRCPPAuthListenerHandle alloc] init]; @@ -191,6 +212,8 @@ void UpdateCurrentUser(AuthData *auth_data) { // It's possible for the user to be signed-in at creation, if the user signed-in during a // previous run, for example. UpdateCurrentUser(auth_data); + + CheckEmulator(auth_data); } // Platform-specific method to destroy the wrapped Auth class. diff --git a/release_build_files/readme.md b/release_build_files/readme.md index 15827c0fb9..788ce32f29 100644 --- a/release_build_files/readme.md +++ b/release_build_files/readme.md @@ -632,7 +632,10 @@ code. - General (Android): Update to Firebase Android BoM version 32.2.2. - General (iOS): Update to Firebase Cocoapods version 10.13.0. - General (iOS): 32-bit iOS builds (i386 and armv7) are no longer supported. + - General: Add FirebaseApp.GetApps(), to return the list of `firebase::App` instances. - GMA (Android): Fixed a crash when initializing GMA without a Firebase App. + - Firestore: Add support for disjunctions in queries (OR queries) + ([#1335](https://github.com/firebase/firebase-cpp-sdk/pull/1335)). ### 11.3.0 - Changes