Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add mockUserToken support for Firestore Emulator. #4837

Merged
merged 15 commits into from
May 3, 2021

Conversation

yuchenshi
Copy link
Member

@yuchenshi yuchenshi commented Apr 27, 2021

The Firestore version of #4792.

See tests added. Also manually tested end-to-end with modified security rules quickstart.

Fixes #4715.

@changeset-bot
Copy link

changeset-bot bot commented Apr 27, 2021

🦋 Changeset detected

Latest commit: ec61867

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@firebase/firestore-types Minor
@firebase/firestore Minor
firebase Minor
@firebase/rules-unit-testing Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

This comment has been minimized.

@yuchenshi yuchenshi force-pushed the ys/mockUserToken-firestore branch 3 times, most recently from ead9cea to ca4c905 Compare April 28, 2021 00:20
@yuchenshi yuchenshi changed the title Add mockUserToken support for Firestore. Add mockUserToken support for Firestore Emulator. Apr 28, 2021
@yuchenshi yuchenshi marked this pull request as ready for review April 28, 2021 02:52
Copy link
Member

@Feiyang1 Feiyang1 left a comment

Choose a reason for hiding this comment

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

To fix #4715, does it mean developers need to rewrite their code to use firestore APIs directly:

const firestore = getFirestore();
useFirestoreEmulator(..., {mockUserToken});

instead of relying on @firebase/rules-unit-testing to create a firestore instance configured with emulator ?

What is the plan to update @firebase/rules-unit-testing the library itself and the documentation?

.changeset/lemon-ligers-protect.md Outdated Show resolved Hide resolved
packages/app-types/index.d.ts Outdated Show resolved Hide resolved
@yuchenshi
Copy link
Member Author

To fix #4715, does it mean developers need to rewrite their code to use firestore APIs directly:

const firestore = getFirestore();
useFirestoreEmulator(..., {mockUserToken});

instead of relying on @firebase/rules-unit-testing to create a firestore instance configured with emulator ?

Yes.

What is the plan to update @firebase/rules-unit-testing the library itself and the documentation?

See http://go/firebase-rules-unit-testing-next (Googlers only). Timeline section has the remaining action items tracked.

@yuchenshi yuchenshi requested a review from Feiyang1 April 29, 2021 20:50
Base automatically changed from ys/mockUserToken-database to master April 29, 2021 21:36
@yuchenshi yuchenshi requested a review from jsdt as a code owner April 29, 2021 21:36
.changeset/lemon-ligers-protect.md Outdated Show resolved Hide resolved
.changeset/sweet-monkeys-warn.md Outdated Show resolved Hide resolved
packages/firestore-types/index.d.ts Show resolved Hide resolved
packages/firestore/src/api/credentials.ts Outdated Show resolved Hide resolved
packages/firestore/src/lite/database.ts Outdated Show resolved Hide resolved
@google-oss-bot
Copy link
Contributor

google-oss-bot commented Apr 30, 2021

Binary Size Report

Affected SDKs

  • @firebase/analytics

    Type Base (5ad33ab) Head (3251d2b) Diff
    esm2017 ? 18.7 kB ? (?)
    main ? 24.2 kB ? (?)
    module ? 23.4 kB ? (?)
  • @firebase/api-documenter

    Type Base (5ad33ab) Head (3251d2b) Diff
    main ? 3.72 kB ? (?)
  • @firebase/app

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 10.8 kB ? (?)
    esm2017 ? 9.57 kB ? (?)
    lite ? 8.88 kB ? (?)
    lite-esm2017 ? 7.87 kB ? (?)
    main ? 9.93 kB ? (?)
    module ? 10.8 kB ? (?)
    react-native ? 9.64 kB ? (?)
  • @firebase/auth

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 181 kB ? (?)
    main ? 181 kB ? (?)
    module ? 181 kB ? (?)
  • @firebase/component

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 7.24 kB ? (?)
    esm2017 ? 5.55 kB ? (?)
    main ? 7.57 kB ? (?)
    module ? 7.24 kB ? (?)
  • @firebase/database

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 296 kB ? (?)
    esm2017 ? 264 kB ? (?)
    main ? 298 kB ? (?)
    module ? 296 kB ? (?)
  • @firebase/database-compat

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 86.3 kB ? (?)
    main ? 102 kB ? (?)
    module ? 86.3 kB ? (?)
  • @firebase/database-exp

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 246 kB ? (?)
    main ? 278 kB ? (?)
    module ? 246 kB ? (?)
  • @firebase/firestore

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 283 kB ? (?)
    esm2017 ? 226 kB ? (?)
    main ? 530 kB ? (?)
    module ? 283 kB ? (?)
    react-native ? 226 kB ? (?)
  • @firebase/firestore-compat

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 28.4 kB ? (?)
    main ? 37.5 kB ? (?)
    module ? 28.4 kB ? (?)
    react-native ? 28.2 kB ? (?)
  • @firebase/firestore-exp

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 223 kB ? (?)
    main ? 506 kB ? (?)
    module ? 223 kB ? (?)
    react-native ? 224 kB ? (?)
  • @firebase/firestore-lite

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 71.9 kB ? (?)
    main ? 146 kB ? (?)
    module ? 71.9 kB ? (?)
    react-native ? 72.1 kB ? (?)
  • @firebase/firestore/bundle

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 289 kB ? (?)
    esm2017 ? 176 kB ? (?)
    main ? 526 kB ? (?)
    module ? 289 kB ? (?)
    react-native ? 176 kB ? (?)
  • @firebase/firestore/memory

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 215 kB ? (?)
    esm2017 ? 172 kB ? (?)
    main ? 324 kB ? (?)
    module ? 215 kB ? (?)
    react-native ? 172 kB ? (?)
  • @firebase/firestore/memory-bundle

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 224 kB ? (?)
    esm2017 ? 176 kB ? (?)
    main ? 321 kB ? (?)
    module ? 224 kB ? (?)
    react-native ? 176 kB ? (?)
  • @firebase/functions

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 10.6 kB ? (?)
    esm2017 ? 8.15 kB ? (?)
    main ? 11.0 kB ? (?)
    module ? 10.6 kB ? (?)
  • @firebase/installations

    Type Base (5ad33ab) Head (3251d2b) Diff
    esm2017 ? 16.6 kB ? (?)
    main ? 22.2 kB ? (?)
    module ? 21.6 kB ? (?)
  • @firebase/logger

    Type Base (5ad33ab) Head (3251d2b) Diff
    esm2017 ? 3.25 kB ? (?)
    main ? 5.38 kB ? (?)
    module ? 4.65 kB ? (?)
  • @firebase/messaging

    Type Base (5ad33ab) Head (3251d2b) Diff
    esm2017 ? 26.2 kB ? (?)
    main ? 34.9 kB ? (?)
    module ? 34.4 kB ? (?)
  • @firebase/performance

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 27.7 kB ? (?)
    esm2017 ? 25.9 kB ? (?)
    main ? 28.0 kB ? (?)
    module ? 27.7 kB ? (?)
  • @firebase/polyfill

    Type Base (5ad33ab) Head (3251d2b) Diff
    main ? 747 B ? (?)
    module ? 705 B ? (?)
  • @firebase/remote-config

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 22.4 kB ? (?)
    esm2017 ? 17.4 kB ? (?)
    main ? 23.0 kB ? (?)
    module ? 22.4 kB ? (?)
  • @firebase/rules-unit-testing

    Type Base (5ad33ab) Head (3251d2b) Diff
    main ? 12.6 kB ? (?)
  • @firebase/storage

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 63.4 kB ? (?)
    esm2017 ? 54.6 kB ? (?)
    main ? 63.8 kB ? (?)
    module ? 63.4 kB ? (?)
  • @firebase/storage-compat

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 10.2 kB ? (?)
    main ? 29.1 kB ? (?)
    module ? 10.2 kB ? (?)
  • @firebase/storage-exp

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 51.5 kB ? (?)
    main ? 52.6 kB ? (?)
    module ? 51.5 kB ? (?)
  • @firebase/util

    Type Base (5ad33ab) Head (3251d2b) Diff
    browser ? 21.2 kB ? (?)
    esm2017 ? 20.0 kB ? (?)
    main ? 25.8 kB ? (?)
    module ? 21.2 kB ? (?)
  • @firebase/webchannel-wrapper

    Type Base (5ad33ab) Head (3251d2b) Diff
    esm2017 ? 39.5 kB ? (?)
    main ? 46.9 kB ? (?)
    module ? 40.8 kB ? (?)
  • firebase

    Click to show 15 binary size changes.
    Type Base (5ad33ab) Head (3251d2b) Diff
    firebase-analytics.js ? 35.8 kB ? (?)
    firebase-app.js ? 21.2 kB ? (?)
    firebase-auth.js ? 177 kB ? (?)
    firebase-database.js ? 187 kB ? (?)
    firebase-firestore.js ? 332 kB ? (?)
    firebase-firestore.memory.js ? 266 kB ? (?)
    firebase-functions.js ? 10.7 kB ? (?)
    firebase-installations.js ? 19.3 kB ? (?)
    firebase-messaging.js ? 41.0 kB ? (?)
    firebase-performance-standalone.es2017.js ? 72.9 kB ? (?)
    firebase-performance-standalone.js ? 49.2 kB ? (?)
    firebase-performance.js ? 38.3 kB ? (?)
    firebase-remote-config.js ? 36.9 kB ? (?)
    firebase-storage.js ? 41.6 kB ? (?)
    firebase.js ? 874 kB ? (?)

Test Logs

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Apr 30, 2021

Size Analysis Report

Affected Products

Diffs between base commit (efafeec) and head commit (c38a2c9) are too large (479,509 characters) to display.

Please check below links to see details from the original test log.

@yuchenshi yuchenshi requested a review from Feiyang1 April 30, 2021 22:46
packages/firebase/index.d.ts Outdated Show resolved Hide resolved
@yuchenshi yuchenshi requested a review from Feiyang1 May 3, 2021 21:11
packages/database/src/api/Database.ts Outdated Show resolved Hide resolved
@yuchenshi yuchenshi force-pushed the ys/mockUserToken-firestore branch from 4e620b0 to ec61867 Compare May 3, 2021 21:54
@yuchenshi yuchenshi requested a review from Feiyang1 May 3, 2021 21:57
@yuchenshi yuchenshi merged commit 97f61e6 into master May 3, 2021
@yuchenshi yuchenshi deleted the ys/mockUserToken-firestore branch May 3, 2021 22:21
@google-oss-bot google-oss-bot mentioned this pull request May 4, 2021
@firebase firebase locked and limited conversation to collaborators Jun 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants