@firebase/firestore 3.4.14 → 3.4.15-20220831174748

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/firestore/src/api/credentials.d.ts +13 -3
  3. package/dist/firestore/src/api/database.d.ts +34 -3
  4. package/dist/firestore/src/api/index_configuration.d.ts +5 -0
  5. package/dist/firestore/src/core/database_info.d.ts +4 -0
  6. package/dist/firestore/src/lite-api/database.d.ts +51 -7
  7. package/dist/firestore/test/integration/api/provider.test.d.ts +17 -0
  8. package/dist/firestore/test/integration/util/firebase_export.d.ts +2 -1
  9. package/dist/firestore/test/integration/util/helpers.d.ts +1 -0
  10. package/dist/index.d.ts +15 -94
  11. package/dist/index.esm2017.js +1713 -1704
  12. package/dist/index.esm2017.js.map +1 -1
  13. package/dist/index.esm5.js +2343 -2330
  14. package/dist/index.esm5.js.map +1 -1
  15. package/dist/index.node.cjs.js +81 -58
  16. package/dist/index.node.cjs.js.map +1 -1
  17. package/dist/index.node.mjs +81 -58
  18. package/dist/index.node.mjs.map +1 -1
  19. package/dist/index.rn.js +1713 -1704
  20. package/dist/index.rn.js.map +1 -1
  21. package/dist/internal.d.ts +48 -6
  22. package/dist/lite/firestore/src/api/credentials.d.ts +13 -3
  23. package/dist/lite/firestore/src/api/database.d.ts +34 -3
  24. package/dist/lite/firestore/src/api/index_configuration.d.ts +5 -0
  25. package/dist/lite/firestore/src/core/database_info.d.ts +4 -0
  26. package/dist/lite/firestore/src/lite-api/database.d.ts +51 -7
  27. package/dist/lite/firestore/test/integration/api/provider.test.d.ts +17 -0
  28. package/dist/lite/firestore/test/integration/util/firebase_export.d.ts +2 -1
  29. package/dist/lite/firestore/test/integration/util/helpers.d.ts +1 -0
  30. package/dist/lite/index.browser.esm2017.js +273 -277
  31. package/dist/lite/index.browser.esm2017.js.map +1 -1
  32. package/dist/lite/index.browser.esm5.js +621 -608
  33. package/dist/lite/index.browser.esm5.js.map +1 -1
  34. package/dist/lite/index.d.ts +15 -4
  35. package/dist/lite/index.node.cjs.js +71 -61
  36. package/dist/lite/index.node.cjs.js.map +1 -1
  37. package/dist/lite/index.node.mjs +71 -61
  38. package/dist/lite/index.node.mjs.map +1 -1
  39. package/dist/lite/index.rn.esm2017.js +273 -277
  40. package/dist/lite/index.rn.esm2017.js.map +1 -1
  41. package/dist/lite/internal.d.ts +58 -7
  42. package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +29 -66
  43. package/dist/lite/packages/firestore/src/api/credentials.d.ts +13 -3
  44. package/dist/lite/packages/firestore/src/api/database.d.ts +34 -3
  45. package/dist/lite/packages/firestore/src/api/index_configuration.d.ts +5 -0
  46. package/dist/lite/packages/firestore/src/core/database_info.d.ts +4 -0
  47. package/dist/lite/packages/firestore/src/lite-api/database.d.ts +51 -7
  48. package/dist/lite/packages/firestore/test/integration/api/provider.test.d.ts +17 -0
  49. package/dist/lite/packages/firestore/test/integration/util/firebase_export.d.ts +2 -1
  50. package/dist/lite/packages/firestore/test/integration/util/helpers.d.ts +1 -0
  51. package/dist/lite/private.d.ts +25 -7
  52. package/dist/packages/firestore/dist/index.esm2017.d.ts +70 -65
  53. package/dist/packages/firestore/src/api/credentials.d.ts +13 -3
  54. package/dist/packages/firestore/src/api/database.d.ts +34 -3
  55. package/dist/packages/firestore/src/api/index_configuration.d.ts +5 -0
  56. package/dist/packages/firestore/src/core/database_info.d.ts +4 -0
  57. package/dist/packages/firestore/src/lite-api/database.d.ts +51 -7
  58. package/dist/packages/firestore/test/integration/api/provider.test.d.ts +17 -0
  59. package/dist/packages/firestore/test/integration/util/firebase_export.d.ts +2 -1
  60. package/dist/packages/firestore/test/integration/util/helpers.d.ts +1 -0
  61. package/dist/private.d.ts +28 -99
  62. package/package.json +5 -4
@@ -123,6 +123,8 @@ declare interface AsyncQueue {
123
123
  verifyOperationInProgress(): void;
124
124
  }
125
125
 
126
+ declare type AuthTokenFactory = () => string;
127
+
126
128
  /**
127
129
  * Path represents an ordered sequence of string segments.
128
130
  */
@@ -854,18 +856,18 @@ declare abstract class Filter {
854
856
  export declare class Firestore implements FirestoreService {
855
857
  _authCredentials: CredentialsProvider<User>;
856
858
  _appCheckCredentials: CredentialsProvider<string>;
859
+ readonly _databaseId: DatabaseId;
860
+ readonly _app?: FirebaseApp | undefined;
857
861
  /**
858
862
  * Whether it's a Firestore or Firestore Lite instance.
859
863
  */
860
864
  type: 'firestore-lite' | 'firestore';
861
- readonly _databaseId: DatabaseId;
862
865
  readonly _persistenceKey: string;
863
866
  private _settings;
864
867
  private _settingsFrozen;
865
868
  private _terminateTask?;
866
- _app?: FirebaseApp;
867
869
  /** @hideconstructor */
868
- constructor(databaseIdOrApp: DatabaseId | FirebaseApp, _authCredentials: CredentialsProvider<User>, _appCheckCredentials: CredentialsProvider<string>);
870
+ constructor(_authCredentials: CredentialsProvider<User>, _appCheckCredentials: CredentialsProvider<string>, _databaseId: DatabaseId, _app?: FirebaseApp | undefined);
869
871
  /**
870
872
  * The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service
871
873
  * instance.
@@ -1337,6 +1339,7 @@ declare interface FirstPartyCredentialsSettings {
1337
1339
  ['client']: unknown;
1338
1340
  ['sessionIndex']: string;
1339
1341
  ['iamToken']: string | null;
1342
+ ['authTokenFactory']: AuthTokenFactory | null;
1340
1343
  }
1341
1344
 
1342
1345
  /**
@@ -1429,15 +1432,28 @@ export declare function getDoc<T>(reference: DocumentReference<T>): Promise<Docu
1429
1432
  export declare function getDocs<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
1430
1433
 
1431
1434
  /**
1432
- * Returns the existing `Firestore` instance that is associated with the
1435
+ * Returns the existing default {@link Firestore} instance that is associated with the
1436
+ * default {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
1437
+ * instance with default settings.
1438
+ *
1439
+ * @returns The {@link Firestore} instance of the provided app.
1440
+ */
1441
+ export declare function getFirestore(): Firestore;
1442
+
1443
+ /**
1444
+ * Returns the existing default {@link Firestore} instance that is associated with the
1433
1445
  * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
1434
1446
  * instance with default settings.
1435
1447
  *
1436
- * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned `Firestore`
1448
+ * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
1437
1449
  * instance is associated with.
1438
- * @returns The `Firestore` instance of the provided app.
1450
+ * @returns The {@link Firestore} instance of the provided app.
1439
1451
  */
1440
- export declare function getFirestore(app?: FirebaseApp): Firestore;
1452
+ export declare function getFirestore(app: FirebaseApp): Firestore;
1453
+
1454
+ /* Excluded declaration from this release type: getFirestore */
1455
+
1456
+ /* Excluded declaration from this release type: getFirestore */
1441
1457
 
1442
1458
  /**
1443
1459
  * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link
@@ -1477,6 +1493,8 @@ declare type IndexState = 'STATE_UNSPECIFIED' | 'CREATING' | 'READY' | 'ERROR';
1477
1493
  */
1478
1494
  export declare function initializeFirestore(app: FirebaseApp, settings: Settings): Firestore;
1479
1495
 
1496
+ /* Excluded declaration from this release type: initializeFirestore */
1497
+
1480
1498
  /**
1481
1499
  * Creates a {@link QueryConstraint} that only returns the first matching documents.
1482
1500
  *
@@ -845,7 +845,19 @@ declare function Da(t: any, e: any, ...n: any[]): Sa;
845
845
  * will be included. Cannot contain a slash.
846
846
  * @returns The created `Query`.
847
847
  */ declare function Ca(t: any, e: any): Va;
848
- declare function Pa(t: any, e: any, n: any, s?: {}): void;
848
+ /**
849
+ * Modify this instance to communicate with the Cloud Firestore emulator.
850
+ *
851
+ * Note: This must be called before this instance has been used to do any
852
+ * operations.
853
+ *
854
+ * @param firestore - The `Firestore` instance to configure to connect to the
855
+ * emulator.
856
+ * @param host - the emulator host (ex: localhost).
857
+ * @param port - the emulator port (ex: 9000).
858
+ * @param options.mockUserToken - the mock auth token to use for unit testing
859
+ * Security Rules.
860
+ */ declare function Pa(t: any, e: any, n: any, s?: {}): void;
849
861
  /**
850
862
  * Deletes the document referred to by the specified `DocumentReference`.
851
863
  *
@@ -1034,15 +1046,7 @@ declare function dl(t: any): Promise<Oh>;
1034
1046
  *
1035
1047
  * @returns A `Promise` that will be resolved with the results of the query.
1036
1048
  */ declare function pl(t: any): Promise<$h>;
1037
- /**
1038
- * Returns the existing {@link Firestore} instance that is associated with the
1039
- * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
1040
- * instance with default settings.
1041
- *
1042
- * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
1043
- * instance is associated with.
1044
- * @returns The {@link Firestore} instance of the provided app.
1045
- */ declare function Ua(e?: import("@firebase/app").FirebaseApp): import("../src").Firestore;
1049
+ declare function Ua(e: any, n: any): import("../src").Firestore;
1046
1050
  /**
1047
1051
  * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link
1048
1052
  * @firebase/firestore/lite#(updateDoc:1)} that tells the server to increment the field's current value by
@@ -1071,8 +1075,9 @@ declare function dl(t: any): Promise<Oh>;
1071
1075
  * @param app - The {@link @firebase/app#FirebaseApp} with which the {@link Firestore} instance will
1072
1076
  * be associated.
1073
1077
  * @param settings - A settings object to configure the {@link Firestore} instance.
1078
+ * @param databaseId - The name of database.
1074
1079
  * @returns A newly initialized {@link Firestore} instance.
1075
- */ declare function La(t: any, e: any): import("../src").Firestore;
1080
+ */ declare function La(t: any, e: any, n: any): import("../src").Firestore;
1076
1081
  /**
1077
1082
  * Creates a {@link QueryConstraint} that only returns the first matching documents.
1078
1083
  *
@@ -1368,9 +1373,11 @@ declare function Tl(t: any, e: any, n: any, ...s: any[]): Promise<any>;
1368
1373
  * Do not call this constructor directly. Instead, use {@link getFirestore}.
1369
1374
  */ declare class ba {
1370
1375
  /** @hideconstructor */
1371
- constructor(t: any, e: any, n: any);
1376
+ constructor(t: any, e: any, n: any, s: any);
1372
1377
  _authCredentials: any;
1373
1378
  _appCheckCredentials: any;
1379
+ _databaseId: any;
1380
+ _app: any;
1374
1381
  /**
1375
1382
  * Whether it's a Firestore or Firestore Lite instance.
1376
1383
  */
@@ -1378,8 +1385,6 @@ declare function Tl(t: any, e: any, n: any, ...s: any[]): Promise<any>;
1378
1385
  _persistenceKey: string;
1379
1386
  _settings: Ra;
1380
1387
  _settingsFrozen: boolean;
1381
- _databaseId: ue;
1382
- _app: any;
1383
1388
  /**
1384
1389
  * The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service
1385
1390
  * instance.
@@ -1393,7 +1398,7 @@ declare function Tl(t: any, e: any, n: any, ...s: any[]): Promise<any>;
1393
1398
  _terminateTask: Promise<void> | undefined;
1394
1399
  /** Returns a JSON-serializable representation of this `Firestore` instance. */ toJSON(): {
1395
1400
  app: any;
1396
- databaseId: ue;
1401
+ databaseId: any;
1397
1402
  settings: Ra;
1398
1403
  };
1399
1404
  /**
@@ -1420,16 +1425,16 @@ declare function Tl(t: any, e: any, n: any, ...s: any[]): Promise<any>;
1420
1425
  * See the License for the specific language governing permissions and
1421
1426
  * limitations under the License.
1422
1427
  */ declare class Ma {
1423
- Mc: Promise<void>;
1424
- Oc: any[];
1425
- Fc: boolean;
1426
- $c: any[];
1427
- Bc: any;
1428
+ $c: Promise<void>;
1429
+ Bc: any[];
1428
1430
  Lc: boolean;
1429
- Uc: boolean;
1430
- qc: any[];
1431
- So: ru;
1432
- Kc: () => void;
1431
+ Uc: any[];
1432
+ qc: any;
1433
+ Kc: boolean;
1434
+ Gc: boolean;
1435
+ Qc: any[];
1436
+ xo: ru;
1437
+ jc: () => void;
1433
1438
  get isShuttingDown(): boolean;
1434
1439
  /**
1435
1440
  * Adds a new operation to the queue without waiting for it to complete (i.e.
@@ -1442,30 +1447,30 @@ declare function Tl(t: any, e: any, n: any, ...s: any[]): Promise<any>;
1442
1447
  /**
1443
1448
  * Runs the next operation from the retryable queue. If the operation fails,
1444
1449
  * reschedules with backoff.
1445
- */ jc(): Promise<void>;
1446
- Qc(t: any): Promise<any>;
1450
+ */ Hc(): Promise<void>;
1451
+ zc(t: any): Promise<any>;
1447
1452
  enqueueAfterDelay(t: any, e: any, n: any): Lu;
1448
- Gc(): void;
1453
+ Wc(): void;
1449
1454
  verifyOperationInProgress(): void;
1450
1455
  /**
1451
1456
  * Waits until all currently queued tasks are finished executing. Delayed
1452
1457
  * operations are not run.
1453
- */ zc(): Promise<void>;
1458
+ */ Yc(): Promise<void>;
1454
1459
  /**
1455
1460
  * For Tests: Determine if a delayed operation with a particular TimerId
1456
1461
  * exists.
1457
- */ Hc(t: any): boolean;
1462
+ */ Xc(t: any): boolean;
1458
1463
  /**
1459
1464
  * For Tests: Runs some or all delayed operations early.
1460
1465
  *
1461
1466
  * @param lastTimerId - Delayed operations up to and including this TimerId
1462
1467
  * will be drained. Pass TimerId.All to run all delayed operations.
1463
1468
  * @returns a Promise that resolves once all operations have been run.
1464
- */ Jc(t: any): Promise<void>;
1469
+ */ Zc(t: any): Promise<void>;
1465
1470
  /**
1466
1471
  * For Tests: Skip all subsequent delays for a timer id.
1467
- */ Yc(t: any): void;
1468
- /** Called once a DelayedOperation is run or canceled. */ Wc(t: any): void;
1472
+ */ ta(t: any): void;
1473
+ /** Called once a DelayedOperation is run or canceled. */ Jc(t: any): void;
1469
1474
  }
1470
1475
  import { FirebaseError as c } from "@firebase/util/dist/src/errors";
1471
1476
  /**
@@ -1495,8 +1500,8 @@ import { FirebaseError as c } from "@firebase/util/dist/src/errors";
1495
1500
  constructor(t: any, e: any, n: any);
1496
1501
  databaseId: any;
1497
1502
  ignoreUndefinedProperties: any;
1498
- wt: any;
1499
- /** Creates a new top-level parse context. */ aa(t: any, e: any, n: any, s?: boolean): hh;
1503
+ It: any;
1504
+ /** Creates a new top-level parse context. */ fa(t: any, e: any, n: any, s?: boolean): hh;
1500
1505
  }
1501
1506
  declare class Z {
1502
1507
  constructor(t: any);
@@ -1546,13 +1551,13 @@ declare class at {
1546
1551
  }
1547
1552
  declare class yh extends ih {
1548
1553
  constructor(t: any, e: any);
1549
- ha: any;
1554
+ da: any;
1550
1555
  _toFieldTransform(t: any): Fn;
1551
1556
  isEqual(t: any): boolean;
1552
1557
  }
1553
1558
  declare class gh extends ih {
1554
1559
  constructor(t: any, e: any);
1555
- ha: any;
1560
+ da: any;
1556
1561
  _toFieldTransform(t: any): Fn;
1557
1562
  isEqual(t: any): boolean;
1558
1563
  }
@@ -1563,27 +1568,27 @@ declare class _h extends ih {
1563
1568
  declare class tl extends qh {
1564
1569
  constructor(t: any, e: any, n: any);
1565
1570
  type: any;
1566
- ya: any;
1567
- pa: any;
1571
+ Ta: any;
1572
+ Ea: any;
1568
1573
  _apply(t: any): Va;
1569
1574
  }
1570
1575
  declare class ph extends ih {
1571
1576
  constructor(t: any, e: any);
1572
- la: any;
1577
+ _a: any;
1573
1578
  _toFieldTransform(t: any): Fn;
1574
1579
  isEqual(t: any): boolean;
1575
1580
  }
1576
1581
  declare class zh extends qh {
1577
1582
  constructor(t: any, e: any, n: any);
1578
1583
  type: any;
1579
- ma: any;
1580
- ga: any;
1584
+ pa: any;
1585
+ Ia: any;
1581
1586
  _apply(t: any): Va;
1582
1587
  }
1583
1588
  declare class jh extends qh {
1584
1589
  constructor(t: any, e: any);
1585
- fa: any;
1586
1590
  wa: any;
1591
+ ya: any;
1587
1592
  type: string;
1588
1593
  _apply(t: any): Va;
1589
1594
  }
@@ -1594,15 +1599,15 @@ declare class mh extends ih {
1594
1599
  declare class Yh extends qh {
1595
1600
  constructor(t: any, e: any, n: any);
1596
1601
  type: any;
1597
- ya: any;
1598
- pa: any;
1602
+ Ta: any;
1603
+ Ea: any;
1599
1604
  _apply(t: any): Va;
1600
1605
  }
1601
1606
  declare class Gh extends qh {
1602
1607
  constructor(t: any, e: any, n: any);
1603
- fa: any;
1604
- da: any;
1605
- _a: any;
1608
+ wa: any;
1609
+ ma: any;
1610
+ ga: any;
1606
1611
  type: string;
1607
1612
  _apply(t: any): Va;
1608
1613
  }
@@ -1653,15 +1658,15 @@ declare class Ra {
1653
1658
  */
1654
1659
  declare class ru {
1655
1660
  constructor(t: any, e: any, n?: number, s?: number, i?: number);
1656
- js: any;
1661
+ Hs: any;
1657
1662
  timerId: any;
1658
- lo: number;
1659
- fo: number;
1660
- _o: number;
1661
1663
  wo: number;
1662
- mo: any;
1663
- /** The last backoff attempt, as epoch milliseconds. */
1664
+ mo: number;
1664
1665
  yo: number;
1666
+ po: number;
1667
+ Io: any;
1668
+ /** The last backoff attempt, as epoch milliseconds. */
1669
+ To: number;
1665
1670
  /**
1666
1671
  * Resets the backoff delay.
1667
1672
  *
@@ -1672,15 +1677,15 @@ declare class ru {
1672
1677
  /**
1673
1678
  * Resets the backoff delay to the maximum delay (e.g. for use after a
1674
1679
  * RESOURCE_EXHAUSTED error).
1675
- */ po(): void;
1680
+ */ Eo(): void;
1676
1681
  /**
1677
1682
  * Returns a promise that resolves after currentDelayMs, and increases the
1678
1683
  * delay for any subsequent attempts. If there was a pending backoff operation
1679
1684
  * already, it will be canceled.
1680
- */ Io(t: any): void;
1681
- Eo(): void;
1685
+ */ Ao(t: any): void;
1686
+ bo(): void;
1682
1687
  cancel(): void;
1683
- /** Returns a random value in the range [-currentBaseMs/2, currentBaseMs/2] */ To(): number;
1688
+ /** Returns a random value in the range [-currentBaseMs/2, currentBaseMs/2] */ Ro(): number;
1684
1689
  }
1685
1690
  /**
1686
1691
  * @license
@@ -1773,20 +1778,20 @@ declare class Lu {
1773
1778
  constructor(t: any, e: any, n: any, s: any, i: any, r: any);
1774
1779
  settings: any;
1775
1780
  databaseId: any;
1776
- wt: any;
1781
+ It: any;
1777
1782
  ignoreUndefinedProperties: any;
1778
1783
  fieldTransforms: any;
1779
1784
  fieldMask: any;
1780
1785
  get path(): any;
1781
- get Zc(): any;
1782
- /** Returns a new context with the specified settings overwritten. */ ta(t: any): hh;
1783
- ea(t: any): hh;
1786
+ get na(): any;
1787
+ /** Returns a new context with the specified settings overwritten. */ sa(t: any): hh;
1784
1788
  ia(t: any): hh;
1785
- ra(t: any): hh;
1786
- oa(t: any): Q;
1789
+ ua(t: any): hh;
1790
+ ca(t: any): hh;
1791
+ aa(t: any): Q;
1787
1792
  /** Returns 'true' if 'fieldPath' was traversed when creating this context. */ contains(t: any): boolean;
1788
- Xc(): void;
1789
- sa(t: any): void;
1793
+ ea(): void;
1794
+ oa(t: any): void;
1790
1795
  }
1791
1796
  /**
1792
1797
  * @license
@@ -19,11 +19,13 @@ import { FirebaseAuthInternalName } from '@firebase/auth-interop-types';
19
19
  import { Provider } from '@firebase/component';
20
20
  import { User } from '../auth/user';
21
21
  import { AsyncQueue } from '../util/async_queue';
22
+ export declare type AuthTokenFactory = () => string;
22
23
  export interface FirstPartyCredentialsSettings {
23
24
  ['type']: 'gapi';
24
25
  ['client']: unknown;
25
26
  ['sessionIndex']: string;
26
27
  ['iamToken']: string | null;
28
+ ['authTokenFactory']: AuthTokenFactory | null;
27
29
  }
28
30
  export interface ProviderCredentialsSettings {
29
31
  ['type']: 'provider';
@@ -146,16 +148,24 @@ interface Gapi {
146
148
  };
147
149
  }
148
150
  export declare class FirstPartyToken implements Token {
151
+ private readonly gapi;
152
+ private readonly sessionIndex;
153
+ private readonly iamToken;
154
+ private readonly authTokenFactory;
149
155
  type: TokenType;
150
156
  user: User;
151
- headers: Map<any, any>;
152
- constructor(gapi: Gapi, sessionIndex: string, iamToken: string | null);
157
+ private _headers;
158
+ constructor(gapi: Gapi | null, sessionIndex: string, iamToken: string | null, authTokenFactory: AuthTokenFactory | null);
159
+ /** Gets an authorization token, using a provided factory function, or falling back to First Party GAPI. */
160
+ private getAuthToken;
161
+ get headers(): Map<string, string>;
153
162
  }
154
163
  export declare class FirstPartyAuthCredentialsProvider implements CredentialsProvider<User> {
155
164
  private gapi;
156
165
  private sessionIndex;
157
166
  private iamToken;
158
- constructor(gapi: Gapi, sessionIndex: string, iamToken: string | null);
167
+ private authTokenFactory;
168
+ constructor(gapi: Gapi | null, sessionIndex: string, iamToken: string | null, authTokenFactory: AuthTokenFactory | null);
159
169
  getToken(): Promise<Token | null>;
160
170
  start(asyncQueue: AsyncQueue, changeListener: CredentialChangeListener<User>): void;
161
171
  shutdown(): void;
@@ -50,7 +50,7 @@ export declare class Firestore extends LiteFirestore {
50
50
  readonly _persistenceKey: string;
51
51
  _firestoreClient: FirestoreClient | undefined;
52
52
  /** @hideconstructor */
53
- constructor(databaseIdOrApp: DatabaseId | FirebaseApp, authCredentialsProvider: CredentialsProvider<User>, appCheckCredentialsProvider: CredentialsProvider<string>);
53
+ constructor(authCredentialsProvider: CredentialsProvider<User>, appCheckCredentialsProvider: CredentialsProvider<string>, databaseId: DatabaseId, app?: FirebaseApp);
54
54
  _terminate(): Promise<void>;
55
55
  }
56
56
  /**
@@ -62,9 +62,38 @@ export declare class Firestore extends LiteFirestore {
62
62
  * @param app - The {@link @firebase/app#FirebaseApp} with which the {@link Firestore} instance will
63
63
  * be associated.
64
64
  * @param settings - A settings object to configure the {@link Firestore} instance.
65
+ * @param databaseId - The name of database.
65
66
  * @returns A newly initialized {@link Firestore} instance.
66
67
  */
67
- export declare function initializeFirestore(app: FirebaseApp, settings: FirestoreSettings): Firestore;
68
+ export declare function initializeFirestore(app: FirebaseApp, settings: FirestoreSettings, databaseId?: string): Firestore;
69
+ /**
70
+ * Returns the existing default {@link Firestore} instance that is associated with the
71
+ * default {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
72
+ * instance with default settings.
73
+ *
74
+ * @returns The {@link Firestore} instance of the provided app.
75
+ */
76
+ export declare function getFirestore(): Firestore;
77
+ /**
78
+ * Returns the existing default {@link Firestore} instance that is associated with the
79
+ * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
80
+ * instance with default settings.
81
+ *
82
+ * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
83
+ * instance is associated with.
84
+ * @returns The {@link Firestore} instance of the provided app.
85
+ */
86
+ export declare function getFirestore(app: FirebaseApp): Firestore;
87
+ /**
88
+ * Returns the existing {@link Firestore} instance that is associated with the
89
+ * default {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
90
+ * instance with default settings.
91
+ *
92
+ * @param databaseId - The name of database.
93
+ * @returns The {@link Firestore} instance of the provided app.
94
+ * @internal
95
+ */
96
+ export declare function getFirestore(databaseId: string): Firestore;
68
97
  /**
69
98
  * Returns the existing {@link Firestore} instance that is associated with the
70
99
  * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
@@ -72,9 +101,11 @@ export declare function initializeFirestore(app: FirebaseApp, settings: Firestor
72
101
  *
73
102
  * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
74
103
  * instance is associated with.
104
+ * @param databaseId - The name of database.
75
105
  * @returns The {@link Firestore} instance of the provided app.
106
+ * @internal
76
107
  */
77
- export declare function getFirestore(app?: FirebaseApp): Firestore;
108
+ export declare function getFirestore(app: FirebaseApp, databaseId: string): Firestore;
78
109
  /**
79
110
  * @internal
80
111
  */
@@ -19,6 +19,7 @@ import { Firestore } from './database';
19
19
  export { connectFirestoreEmulator, EmulatorMockTokenOptions } from '../lite-api/database';
20
20
  /**
21
21
  * A single field element in an index configuration.
22
+ * @beta
22
23
  */
23
24
  export interface IndexField {
24
25
  /** The field path to index. */
@@ -41,6 +42,7 @@ export interface IndexField {
41
42
  }
42
43
  /**
43
44
  * The SDK definition of a Firestore index.
45
+ * @beta
44
46
  */
45
47
  export interface Index {
46
48
  /** The ID of the collection to index. */
@@ -54,6 +56,7 @@ export interface Index {
54
56
  *
55
57
  * See {@link https://firebase.google.com/docs/reference/firestore/indexes/#json_format | JSON Format}
56
58
  * for a description of the format of the index definition.
59
+ * @beta
57
60
  */
58
61
  export interface IndexConfiguration {
59
62
  /** A list of all Firestore indexes. */
@@ -80,6 +83,7 @@ export interface IndexConfiguration {
80
83
  * @throws FirestoreError if the JSON format is invalid.
81
84
  * @returns A `Promise` that resolves once all indices are successfully
82
85
  * configured.
86
+ * @beta
83
87
  */
84
88
  export declare function setIndexConfiguration(firestore: Firestore, configuration: IndexConfiguration): Promise<void>;
85
89
  /**
@@ -106,6 +110,7 @@ export declare function setIndexConfiguration(firestore: Firestore, configuratio
106
110
  * @throws FirestoreError if the JSON format is invalid.
107
111
  * @returns A `Promise` that resolves once all indices are successfully
108
112
  * configured.
113
+ * @beta
109
114
  */
110
115
  export declare function setIndexConfiguration(firestore: Firestore, json: string): Promise<void>;
111
116
  export declare function parseIndexes(jsonOrConfiguration: string | IndexConfiguration): FieldIndex[];
@@ -1,3 +1,4 @@
1
+ import { FirebaseApp } from '@firebase/app';
1
2
  /**
2
3
  * @license
3
4
  * Copyright 2017 Google LLC
@@ -42,6 +43,8 @@ export declare class DatabaseInfo {
42
43
  */
43
44
  constructor(databaseId: DatabaseId, appId: string, persistenceKey: string, host: string, ssl: boolean, forceLongPolling: boolean, autoDetectLongPolling: boolean, useFetchStreams: boolean);
44
45
  }
46
+ /** The default database name for a project. */
47
+ export declare const DEFAULT_DATABASE_NAME = "(default)";
45
48
  /**
46
49
  * Represents the database ID a Firestore client is associated with.
47
50
  * @internal
@@ -54,3 +57,4 @@ export declare class DatabaseId {
54
57
  get isDefaultDatabase(): boolean;
55
58
  isEqual(other: {}): boolean;
56
59
  }
60
+ export declare function databaseIdFromApp(app: FirebaseApp, database?: string): DatabaseId;
@@ -34,18 +34,18 @@ declare module '@firebase/component' {
34
34
  export declare class Firestore implements FirestoreService {
35
35
  _authCredentials: CredentialsProvider<User>;
36
36
  _appCheckCredentials: CredentialsProvider<string>;
37
+ readonly _databaseId: DatabaseId;
38
+ readonly _app?: FirebaseApp | undefined;
37
39
  /**
38
40
  * Whether it's a Firestore or Firestore Lite instance.
39
41
  */
40
42
  type: 'firestore-lite' | 'firestore';
41
- readonly _databaseId: DatabaseId;
42
43
  readonly _persistenceKey: string;
43
44
  private _settings;
44
45
  private _settingsFrozen;
45
46
  private _terminateTask?;
46
- _app?: FirebaseApp;
47
47
  /** @hideconstructor */
48
- constructor(databaseIdOrApp: DatabaseId | FirebaseApp, _authCredentials: CredentialsProvider<User>, _appCheckCredentials: CredentialsProvider<string>);
48
+ constructor(_authCredentials: CredentialsProvider<User>, _appCheckCredentials: CredentialsProvider<string>, _databaseId: DatabaseId, _app?: FirebaseApp | undefined);
49
49
  /**
50
50
  * The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service
51
51
  * instance.
@@ -81,15 +81,59 @@ export declare class Firestore implements FirestoreService {
81
81
  */
82
82
  export declare function initializeFirestore(app: FirebaseApp, settings: FirestoreSettings): Firestore;
83
83
  /**
84
- * Returns the existing `Firestore` instance that is associated with the
84
+ * Initializes a new instance of Cloud Firestore with the provided settings.
85
+ * Can only be called before any other functions, including
86
+ * {@link getFirestore}. If the custom settings are empty, this function is
87
+ * equivalent to calling {@link getFirestore}.
88
+ *
89
+ * @param app - The {@link @firebase/app#FirebaseApp} with which the `Firestore` instance will
90
+ * be associated.
91
+ * @param settings - A settings object to configure the `Firestore` instance.
92
+ * @param databaseId - The name of database.
93
+ * @returns A newly initialized `Firestore` instance.
94
+ * @internal
95
+ */
96
+ export declare function initializeFirestore(app: FirebaseApp, settings: FirestoreSettings, databaseId?: string): Firestore;
97
+ /**
98
+ * Returns the existing default {@link Firestore} instance that is associated with the
99
+ * default {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
100
+ * instance with default settings.
101
+ *
102
+ * @returns The {@link Firestore} instance of the provided app.
103
+ */
104
+ export declare function getFirestore(): Firestore;
105
+ /**
106
+ * Returns the existing default {@link Firestore} instance that is associated with the
107
+ * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
108
+ * instance with default settings.
109
+ *
110
+ * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
111
+ * instance is associated with.
112
+ * @returns The {@link Firestore} instance of the provided app.
113
+ */
114
+ export declare function getFirestore(app: FirebaseApp): Firestore;
115
+ /**
116
+ * Returns the existing {@link Firestore} instance that is associated with the
117
+ * default {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
118
+ * instance with default settings.
119
+ *
120
+ * @param databaseId - The name of database.
121
+ * @returns The {@link Firestore} instance of the provided app.
122
+ * @internal
123
+ */
124
+ export declare function getFirestore(databaseId: string): Firestore;
125
+ /**
126
+ * Returns the existing {@link Firestore} instance that is associated with the
85
127
  * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
86
128
  * instance with default settings.
87
129
  *
88
- * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned `Firestore`
130
+ * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
89
131
  * instance is associated with.
90
- * @returns The `Firestore` instance of the provided app.
132
+ * @param databaseId - The name of database.
133
+ * @returns The {@link Firestore} instance of the provided app.
134
+ * @internal
91
135
  */
92
- export declare function getFirestore(app?: FirebaseApp): Firestore;
136
+ export declare function getFirestore(app: FirebaseApp, databaseId: string): Firestore;
93
137
  export { EmulatorMockTokenOptions } from '@firebase/util';
94
138
  /**
95
139
  * Modify this instance to communicate with the Cloud Firestore emulator.
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022 Google LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export {};
@@ -17,6 +17,7 @@
17
17
  import { FirebaseApp } from '@firebase/app';
18
18
  import { Firestore } from '../../../src';
19
19
  import { PrivateSettings } from '../../../src/lite-api/settings';
20
- export declare function newTestFirestore(projectId: string, nameOrApp?: string | FirebaseApp, settings?: PrivateSettings): Firestore;
20
+ export declare function newTestApp(projectId: string, appName?: string): FirebaseApp;
21
+ export declare function newTestFirestore(app: FirebaseApp, settings?: PrivateSettings, dbName?: string): Firestore;
21
22
  export * from '../../../src';
22
23
  export { PrivateSettings };
@@ -37,6 +37,7 @@ export declare function withTestDb(persistence: boolean, fn: (db: Firestore) =>
37
37
  export declare function withAlternateTestDb(persistence: boolean, fn: (db: Firestore) => Promise<void>): Promise<void>;
38
38
  export declare function withTestDbs(persistence: boolean, numDbs: number, fn: (db: Firestore[]) => Promise<void>): Promise<void>;
39
39
  export declare function withTestDbsSettings(persistence: boolean, projectId: string, settings: PrivateSettings, numDbs: number, fn: (db: Firestore[]) => Promise<void>): Promise<void>;
40
+ export declare function withNamedTestDbsOrSkipUnlessUsingEmulator(persistence: boolean, dbNames: string[], fn: (db: Firestore[]) => Promise<void>): Promise<void>;
40
41
  export declare function withTestDoc(persistence: boolean, fn: (doc: DocumentReference, db: Firestore) => Promise<void>): Promise<void>;
41
42
  export declare function withTestDocAndSettings(persistence: boolean, settings: PrivateSettings, fn: (doc: DocumentReference) => Promise<void>): Promise<void>;
42
43
  export declare function withTestDocAndInitialData(persistence: boolean, initialData: DocumentData | null, fn: (doc: DocumentReference, db: Firestore) => Promise<void>): Promise<void>;