reactfire 4.0.0-exp.e80fc49 → 4.0.0-exp.f654109
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.
- package/README.md +14 -15
- package/dist/SuspenseSubject.d.ts +1 -1
- package/dist/functions.d.ts +12 -0
- package/dist/index.d.ts +1 -0
- package/dist/reactfire.cjs.development.js +148 -204
- package/dist/reactfire.cjs.development.js.map +1 -1
- package/dist/reactfire.cjs.production.min.js +1 -1
- package/dist/reactfire.cjs.production.min.js.map +1 -1
- package/dist/reactfire.esm.js +129 -204
- package/dist/reactfire.esm.js.map +1 -1
- package/dist/{remote-config/index.d.ts → remote-config.d.ts} +2 -7
- package/dist/sdk.d.ts +28 -1
- package/package.json +8 -6
- package/src/SuspenseSubject.ts +6 -4
- package/src/database.tsx +3 -29
- package/src/firebaseApp.tsx +1 -1
- package/src/firestore.tsx +3 -3
- package/src/functions.tsx +26 -0
- package/src/index.ts +1 -0
- package/src/{remote-config/index.tsx → remote-config.tsx} +4 -16
- package/src/sdk.tsx +26 -27
- package/src/storage.tsx +2 -24
- package/src/useObservable.ts +48 -28
- package/dist/remote-config/getValue.d.ts +0 -10
- package/src/remote-config/getValue.tsx +0 -58
package/dist/reactfire.esm.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { useMemo, createElement, useContext, createContext, version as version$1, Fragment,
|
|
1
|
+
import { useMemo, createElement, useContext, createContext, version as version$1, Fragment, useReducer, useEffect, Suspense, useLayoutEffect } from 'react';
|
|
2
2
|
import { user } from 'rxfire/auth';
|
|
3
|
-
import { from, of, empty, Subject
|
|
3
|
+
import { from, of, empty, Subject } from 'rxjs';
|
|
4
4
|
import { switchMap, map, tap, catchError, shareReplay, first } from 'rxjs/operators';
|
|
5
5
|
import { getApps, registerVersion, initializeApp } from 'firebase/app';
|
|
6
|
-
import { object, list, listVal } from 'rxfire/database';
|
|
6
|
+
import { object, objectVal, list, listVal } from 'rxfire/database';
|
|
7
7
|
import { doc, docData, fromRef, collectionData } from 'rxfire/firestore';
|
|
8
8
|
import { queryEqual } from 'firebase/firestore';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { httpsCallable } from 'rxfire/functions';
|
|
10
|
+
import { getValue, getString, getNumber, getBoolean, getAll } from 'rxfire/remote-config';
|
|
11
|
+
import { fromTask, getDownloadURL } from 'rxfire/storage';
|
|
11
12
|
import { ref } from 'firebase/storage';
|
|
12
13
|
|
|
13
14
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
@@ -956,9 +957,9 @@ try {
|
|
|
956
957
|
|
|
957
958
|
var DEFAULT_APP_NAME = '[DEFAULT]';
|
|
958
959
|
var FirebaseAppContext = /*#__PURE__*/createContext(undefined);
|
|
959
|
-
var SuspenseEnabledContext = /*#__PURE__*/createContext(false); // @ts-
|
|
960
|
+
var SuspenseEnabledContext = /*#__PURE__*/createContext(false); // @ts-expect-error: "__REACTFIRE_VERSION__" is replaced with actual ReactFire version (see babel.config.js)
|
|
960
961
|
|
|
961
|
-
var version = "4.0.0-exp.
|
|
962
|
+
var version = "4.0.0-exp.f654109";
|
|
962
963
|
|
|
963
964
|
var shallowEq = function shallowEq(a, b) {
|
|
964
965
|
return a === b || [].concat(Object.keys(a), Object.keys(b)).every(function (key) {
|
|
@@ -1313,33 +1314,13 @@ function useDatabaseObject(ref, options) {
|
|
|
1313
1314
|
var observableId = "database:object:" + ref.toString();
|
|
1314
1315
|
var observable$ = object(ref);
|
|
1315
1316
|
return useObservable(observableId, observable$, options);
|
|
1316
|
-
} // ============================================================================
|
|
1317
|
-
// TODO: switch to rxfire's objectVal once this PR is merged:
|
|
1318
|
-
// https://github.com/firebase/firebase-js-sdk/pull/2352
|
|
1319
|
-
|
|
1320
|
-
function objectVal(query, keyField) {
|
|
1321
|
-
return object(query).pipe(map(function (change) {
|
|
1322
|
-
return changeToData(change, keyField);
|
|
1323
|
-
}));
|
|
1324
1317
|
}
|
|
1325
|
-
|
|
1326
|
-
function changeToData(change, keyField) {
|
|
1327
|
-
var _ref;
|
|
1328
|
-
|
|
1329
|
-
var val = change.snapshot.val(); // don't worry about setting IDs if the value is a primitive type
|
|
1330
|
-
|
|
1331
|
-
if (typeof val !== 'object') {
|
|
1332
|
-
return val;
|
|
1333
|
-
}
|
|
1334
|
-
|
|
1335
|
-
return _extends({}, change.snapshot.val(), keyField ? (_ref = {}, _ref[keyField] = change.snapshot.key, _ref) : null);
|
|
1336
|
-
} // ============================================================================
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
1318
|
function useDatabaseObjectData(ref, options) {
|
|
1340
1319
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1341
1320
|
var observableId = "database:objectVal:" + ref.toString() + ":idField=" + idField;
|
|
1342
|
-
var observable$ = objectVal(ref,
|
|
1321
|
+
var observable$ = objectVal(ref, {
|
|
1322
|
+
keyField: idField
|
|
1323
|
+
});
|
|
1343
1324
|
return useObservable(observableId, observable$, options);
|
|
1344
1325
|
}
|
|
1345
1326
|
/**
|
|
@@ -1357,15 +1338,17 @@ function useDatabaseList(ref, options) {
|
|
|
1357
1338
|
function useDatabaseListData(ref, options) {
|
|
1358
1339
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1359
1340
|
var observableId = "database:listVal:" + getUniqueIdForDatabaseQuery(ref) + ":idField=" + idField;
|
|
1360
|
-
var observable$ = listVal(ref,
|
|
1341
|
+
var observable$ = listVal(ref, {
|
|
1342
|
+
keyField: idField
|
|
1343
|
+
});
|
|
1361
1344
|
return useObservable(observableId, observable$, options);
|
|
1362
1345
|
}
|
|
1363
1346
|
|
|
1364
1347
|
var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
1365
1348
|
_inheritsLoose(SuspenseSubject, _Subject);
|
|
1366
1349
|
|
|
1367
|
-
// @ts-
|
|
1368
|
-
// @ts-
|
|
1350
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1351
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1369
1352
|
function SuspenseSubject(innerObservable, _timeoutWindow) {
|
|
1370
1353
|
var _this;
|
|
1371
1354
|
|
|
@@ -1456,6 +1439,8 @@ var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
|
1456
1439
|
// As it is now, this will burn the cache entry until the timeout fires.
|
|
1457
1440
|
if (this._error) {
|
|
1458
1441
|
throw this._error;
|
|
1442
|
+
} else if (!this.hasValue) {
|
|
1443
|
+
throw Error('Can only get value if SuspenseSubject has a value');
|
|
1459
1444
|
}
|
|
1460
1445
|
|
|
1461
1446
|
return this._value;
|
|
@@ -1495,6 +1480,39 @@ function preloadObservable(source, id) {
|
|
|
1495
1480
|
return observable;
|
|
1496
1481
|
}
|
|
1497
1482
|
}
|
|
1483
|
+
|
|
1484
|
+
function reducerFactory(observable) {
|
|
1485
|
+
return function reducer(state, action) {
|
|
1486
|
+
// always make sure these values are in sync with the observable
|
|
1487
|
+
var newState = _extends({}, state, {
|
|
1488
|
+
hasEmitted: state.hasEmitted || observable.hasValue,
|
|
1489
|
+
error: observable.ourError,
|
|
1490
|
+
firstValuePromise: observable.firstEmission
|
|
1491
|
+
});
|
|
1492
|
+
|
|
1493
|
+
if (observable.hasValue) {
|
|
1494
|
+
newState.data = observable.value;
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
switch (action) {
|
|
1498
|
+
case 'value':
|
|
1499
|
+
newState.status = 'success';
|
|
1500
|
+
return newState;
|
|
1501
|
+
|
|
1502
|
+
case 'error':
|
|
1503
|
+
newState.status = 'error';
|
|
1504
|
+
return newState;
|
|
1505
|
+
|
|
1506
|
+
case 'complete':
|
|
1507
|
+
newState.isComplete = true;
|
|
1508
|
+
return newState;
|
|
1509
|
+
|
|
1510
|
+
default:
|
|
1511
|
+
throw new Error("invalid action \"" + action + "\"");
|
|
1512
|
+
}
|
|
1513
|
+
};
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1498
1516
|
function useObservable(observableId, source, config) {
|
|
1499
1517
|
var _config$initialData, _config, _config2;
|
|
1500
1518
|
|
|
@@ -1502,71 +1520,52 @@ function useObservable(observableId, source, config) {
|
|
|
1502
1520
|
config = {};
|
|
1503
1521
|
}
|
|
1504
1522
|
|
|
1523
|
+
// Register the observable with the cache
|
|
1505
1524
|
if (!observableId) {
|
|
1506
1525
|
throw new Error('cannot call useObservable without an observableId');
|
|
1507
1526
|
}
|
|
1508
1527
|
|
|
1509
|
-
var observable = preloadObservable(source, observableId);
|
|
1528
|
+
var observable = preloadObservable(source, observableId); // Suspend if suspense is enabled and no initial data exists
|
|
1529
|
+
|
|
1510
1530
|
var hasInitialData = config.hasOwnProperty('initialData') || config.hasOwnProperty('startWithValue');
|
|
1531
|
+
var hasData = observable.hasValue || hasInitialData;
|
|
1511
1532
|
var suspenseEnabled = useSuspenseEnabledFromConfigAndContext(config.suspense);
|
|
1512
1533
|
|
|
1513
|
-
if (suspenseEnabled === true && !
|
|
1534
|
+
if (suspenseEnabled === true && !hasData) {
|
|
1514
1535
|
throw observable.firstEmission;
|
|
1515
1536
|
}
|
|
1516
1537
|
|
|
1517
|
-
var
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
var _React$useState2 = useState(false),
|
|
1526
|
-
isComplete = _React$useState2[0],
|
|
1527
|
-
setIsComplete = _React$useState2[1];
|
|
1538
|
+
var initialState = {
|
|
1539
|
+
status: hasData ? 'success' : 'loading',
|
|
1540
|
+
hasEmitted: hasData,
|
|
1541
|
+
isComplete: false,
|
|
1542
|
+
data: observable.hasValue ? observable.value : (_config$initialData = (_config = config) == null ? void 0 : _config.initialData) != null ? _config$initialData : (_config2 = config) == null ? void 0 : _config2.startWithValue,
|
|
1543
|
+
error: observable.ourError,
|
|
1544
|
+
firstValuePromise: observable.firstEmission
|
|
1545
|
+
};
|
|
1528
1546
|
|
|
1529
|
-
var _React$
|
|
1530
|
-
|
|
1531
|
-
|
|
1547
|
+
var _React$useReducer = useReducer(reducerFactory(observable), initialState),
|
|
1548
|
+
status = _React$useReducer[0],
|
|
1549
|
+
dispatch = _React$useReducer[1];
|
|
1532
1550
|
|
|
1533
1551
|
useEffect(function () {
|
|
1534
1552
|
var subscription = observable.subscribe({
|
|
1535
|
-
next: function next(
|
|
1536
|
-
|
|
1537
|
-
return v;
|
|
1538
|
-
});
|
|
1553
|
+
next: function next() {
|
|
1554
|
+
dispatch('value');
|
|
1539
1555
|
},
|
|
1540
1556
|
error: function error(e) {
|
|
1541
|
-
|
|
1557
|
+
dispatch('error');
|
|
1542
1558
|
throw e;
|
|
1543
1559
|
},
|
|
1544
1560
|
complete: function complete() {
|
|
1545
|
-
|
|
1561
|
+
dispatch('complete');
|
|
1546
1562
|
}
|
|
1547
1563
|
});
|
|
1548
1564
|
return function () {
|
|
1549
1565
|
return subscription.unsubscribe();
|
|
1550
1566
|
};
|
|
1551
1567
|
}, [observable]);
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
if (hasError) {
|
|
1555
|
-
status = 'error';
|
|
1556
|
-
} else if (observable.hasValue || hasInitialData) {
|
|
1557
|
-
status = 'success';
|
|
1558
|
-
} else {
|
|
1559
|
-
status = 'loading';
|
|
1560
|
-
}
|
|
1561
|
-
|
|
1562
|
-
return {
|
|
1563
|
-
status: status,
|
|
1564
|
-
hasEmitted: observable.hasValue || hasInitialData,
|
|
1565
|
-
isComplete: isComplete,
|
|
1566
|
-
data: latest,
|
|
1567
|
-
error: observable.ourError,
|
|
1568
|
-
firstValuePromise: observable.firstEmission
|
|
1569
|
-
};
|
|
1568
|
+
return status;
|
|
1570
1569
|
}
|
|
1571
1570
|
|
|
1572
1571
|
var cachedQueries$1 = globalThis._reactFireFirestoreQueryCache || [];
|
|
@@ -1652,7 +1651,9 @@ function useFirestoreDocOnce(ref, options) {
|
|
|
1652
1651
|
function useFirestoreDocData(ref, options) {
|
|
1653
1652
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1654
1653
|
var observableId = "firestore:docData:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1655
|
-
var observable = docData(ref,
|
|
1654
|
+
var observable = docData(ref, {
|
|
1655
|
+
idField: idField
|
|
1656
|
+
});
|
|
1656
1657
|
return useObservable(observableId, observable, options);
|
|
1657
1658
|
}
|
|
1658
1659
|
/**
|
|
@@ -1662,7 +1663,9 @@ function useFirestoreDocData(ref, options) {
|
|
|
1662
1663
|
function useFirestoreDocDataOnce(ref, options) {
|
|
1663
1664
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1664
1665
|
var observableId = "firestore:docDataOnce:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1665
|
-
var observable$ = docData(ref,
|
|
1666
|
+
var observable$ = docData(ref, {
|
|
1667
|
+
idField: idField
|
|
1668
|
+
}).pipe(first());
|
|
1666
1669
|
return useObservable(observableId, observable$, options);
|
|
1667
1670
|
}
|
|
1668
1671
|
/**
|
|
@@ -1681,7 +1684,24 @@ function useFirestoreCollection(query, options) {
|
|
|
1681
1684
|
function useFirestoreCollectionData(query, options) {
|
|
1682
1685
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1683
1686
|
var observableId = "firestore:collectionData:" + getUniqueIdForFirestoreQuery(query) + ":idField=" + idField;
|
|
1684
|
-
var observable$ = collectionData(query,
|
|
1687
|
+
var observable$ = collectionData(query, {
|
|
1688
|
+
idField: idField
|
|
1689
|
+
});
|
|
1690
|
+
return useObservable(observableId, observable$, options);
|
|
1691
|
+
}
|
|
1692
|
+
|
|
1693
|
+
/**
|
|
1694
|
+
* Calls a callable function.
|
|
1695
|
+
*
|
|
1696
|
+
* @param functionName - The name of the function to call
|
|
1697
|
+
* @param options
|
|
1698
|
+
*/
|
|
1699
|
+
|
|
1700
|
+
function useCallableFunctionResponse(functionName, options) {
|
|
1701
|
+
var functions = useFunctions();
|
|
1702
|
+
var observableId = "functions:callableResponse:" + functionName + ":" + JSON.stringify(options == null ? void 0 : options.data) + ":" + JSON.stringify(options == null ? void 0 : options.httpsCallableOptions);
|
|
1703
|
+
var obsFactory = httpsCallable(functions, functionName, options == null ? void 0 : options.httpsCallableOptions);
|
|
1704
|
+
var observable$ = obsFactory(options == null ? void 0 : options.data);
|
|
1685
1705
|
return useObservable(observableId, observable$, options);
|
|
1686
1706
|
}
|
|
1687
1707
|
|
|
@@ -1716,76 +1736,6 @@ function SuspenseWithPerf(_ref) {
|
|
|
1716
1736
|
}, children);
|
|
1717
1737
|
}
|
|
1718
1738
|
|
|
1719
|
-
function parameter$(_ref) {
|
|
1720
|
-
var remoteConfig = _ref.remoteConfig,
|
|
1721
|
-
key = _ref.key,
|
|
1722
|
-
getter = _ref.getter;
|
|
1723
|
-
return new Observable(function (subscriber) {
|
|
1724
|
-
ensureInitialized(remoteConfig).then(function () {
|
|
1725
|
-
// 'this' for the getter loses context in the next()
|
|
1726
|
-
// call, so it needs to be bound.
|
|
1727
|
-
subscriber.next(getter.bind(remoteConfig)(key));
|
|
1728
|
-
});
|
|
1729
|
-
});
|
|
1730
|
-
}
|
|
1731
|
-
|
|
1732
|
-
function getValue(remoteConfig, key) {
|
|
1733
|
-
var getter = function getter() {
|
|
1734
|
-
return getValue$1(remoteConfig, key);
|
|
1735
|
-
};
|
|
1736
|
-
|
|
1737
|
-
return parameter$({
|
|
1738
|
-
remoteConfig: remoteConfig,
|
|
1739
|
-
key: key,
|
|
1740
|
-
getter: getter
|
|
1741
|
-
});
|
|
1742
|
-
}
|
|
1743
|
-
function getString(remoteConfig, key) {
|
|
1744
|
-
var getter = function getter() {
|
|
1745
|
-
return getString$1(remoteConfig, key);
|
|
1746
|
-
};
|
|
1747
|
-
|
|
1748
|
-
return parameter$({
|
|
1749
|
-
remoteConfig: remoteConfig,
|
|
1750
|
-
key: key,
|
|
1751
|
-
getter: getter
|
|
1752
|
-
});
|
|
1753
|
-
}
|
|
1754
|
-
function getNumber(remoteConfig, key) {
|
|
1755
|
-
var getter = function getter() {
|
|
1756
|
-
return getNumber$1(remoteConfig, key);
|
|
1757
|
-
};
|
|
1758
|
-
|
|
1759
|
-
return parameter$({
|
|
1760
|
-
remoteConfig: remoteConfig,
|
|
1761
|
-
key: key,
|
|
1762
|
-
getter: getter
|
|
1763
|
-
});
|
|
1764
|
-
}
|
|
1765
|
-
function getBoolean(remoteConfig, key) {
|
|
1766
|
-
var getter = function getter() {
|
|
1767
|
-
return getBoolean$1(remoteConfig, key);
|
|
1768
|
-
};
|
|
1769
|
-
|
|
1770
|
-
return parameter$({
|
|
1771
|
-
remoteConfig: remoteConfig,
|
|
1772
|
-
key: key,
|
|
1773
|
-
getter: getter
|
|
1774
|
-
});
|
|
1775
|
-
}
|
|
1776
|
-
function getAll(remoteConfig) {
|
|
1777
|
-
var getter = function getter() {
|
|
1778
|
-
return getAll$1(remoteConfig);
|
|
1779
|
-
}; // No key is needed for getAll()
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
return parameter$({
|
|
1783
|
-
remoteConfig: remoteConfig,
|
|
1784
|
-
key: '',
|
|
1785
|
-
getter: getter
|
|
1786
|
-
});
|
|
1787
|
-
}
|
|
1788
|
-
|
|
1789
1739
|
/**
|
|
1790
1740
|
* Helper function to construct type safe functions. Since Remote Config has
|
|
1791
1741
|
* methods that return different types for values, we need to be extra safe
|
|
@@ -1796,12 +1746,8 @@ function getAll(remoteConfig) {
|
|
|
1796
1746
|
*/
|
|
1797
1747
|
|
|
1798
1748
|
function useRemoteConfigValue_INTERNAL(key, getter) {
|
|
1799
|
-
var
|
|
1800
|
-
|
|
1801
|
-
var remoteConfig = useRemoteConfig(); // INVESTIGATE need to use a public API to get at the app name, one doesn't appear to exist...
|
|
1802
|
-
// we might need to iterate over the Firebase apps and check for remoteConfig equality? this works for now
|
|
1803
|
-
|
|
1804
|
-
var appName = (_remoteConfig$_storag = remoteConfig._storage) == null ? void 0 : _remoteConfig$_storag.appName;
|
|
1749
|
+
var remoteConfig = useRemoteConfig();
|
|
1750
|
+
var appName = remoteConfig.app.name;
|
|
1805
1751
|
var $value = getter(remoteConfig, key);
|
|
1806
1752
|
var observableId = "remoteConfig:" + key + ":" + getter.name + ":" + appName;
|
|
1807
1753
|
return useObservable(observableId, $value);
|
|
@@ -1811,7 +1757,6 @@ function useRemoteConfigValue_INTERNAL(key, getter) {
|
|
|
1811
1757
|
* Remote Config Value.
|
|
1812
1758
|
*
|
|
1813
1759
|
* @param key The parameter key in Remote Config
|
|
1814
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1815
1760
|
*/
|
|
1816
1761
|
|
|
1817
1762
|
|
|
@@ -1821,7 +1766,6 @@ function useRemoteConfigValue(key) {
|
|
|
1821
1766
|
/**
|
|
1822
1767
|
* Convience method similar to useRemoteConfigValue. Returns a `string` from a Remote Config parameter.
|
|
1823
1768
|
* @param key The parameter key in Remote Config
|
|
1824
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1825
1769
|
*/
|
|
1826
1770
|
|
|
1827
1771
|
function useRemoteConfigString(key) {
|
|
@@ -1830,7 +1774,6 @@ function useRemoteConfigString(key) {
|
|
|
1830
1774
|
/**
|
|
1831
1775
|
* Convience method similar to useRemoteConfigValue. Returns a `number` from a Remote Config parameter.
|
|
1832
1776
|
* @param key The parameter key in Remote Config
|
|
1833
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1834
1777
|
*/
|
|
1835
1778
|
|
|
1836
1779
|
function useRemoteConfigNumber(key) {
|
|
@@ -1839,7 +1782,6 @@ function useRemoteConfigNumber(key) {
|
|
|
1839
1782
|
/**
|
|
1840
1783
|
* Convience method similar to useRemoteConfigValue. Returns a `boolean` from a Remote Config parameter.
|
|
1841
1784
|
* @param key The parameter key in Remote Config
|
|
1842
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1843
1785
|
*/
|
|
1844
1786
|
|
|
1845
1787
|
function useRemoteConfigBoolean(key) {
|
|
@@ -1848,7 +1790,6 @@ function useRemoteConfigBoolean(key) {
|
|
|
1848
1790
|
/**
|
|
1849
1791
|
* Convience method similar to useRemoteConfigValue. Returns allRemote Config parameters.
|
|
1850
1792
|
* @param key The parameter key in Remote Config
|
|
1851
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1852
1793
|
*/
|
|
1853
1794
|
|
|
1854
1795
|
function useRemoteConfigAll(key) {
|
|
@@ -1856,30 +1797,6 @@ function useRemoteConfigAll(key) {
|
|
|
1856
1797
|
}
|
|
1857
1798
|
|
|
1858
1799
|
var _excluded = ["storage", "storagePath", "suspense", "placeHolder"];
|
|
1859
|
-
/**
|
|
1860
|
-
* modified version of rxFire's _fromTask
|
|
1861
|
-
*
|
|
1862
|
-
* @param task
|
|
1863
|
-
*/
|
|
1864
|
-
|
|
1865
|
-
function _fromTask(task) {
|
|
1866
|
-
return new Observable(function (subscriber) {
|
|
1867
|
-
var progress = function progress(snap) {
|
|
1868
|
-
return subscriber.next(snap);
|
|
1869
|
-
};
|
|
1870
|
-
|
|
1871
|
-
var error = function error(e) {
|
|
1872
|
-
return subscriber.error(e);
|
|
1873
|
-
};
|
|
1874
|
-
|
|
1875
|
-
var complete = function complete() {
|
|
1876
|
-
return subscriber.complete();
|
|
1877
|
-
};
|
|
1878
|
-
|
|
1879
|
-
task.on('state_changed', progress, error, complete); // I REMOVED THE UNSUBSCRIBE RETURN BECAUSE IT CANCELS THE UPLOAD
|
|
1880
|
-
// https://github.com/firebase/firebase-js-sdk/issues/1659
|
|
1881
|
-
});
|
|
1882
|
-
}
|
|
1883
1800
|
/**
|
|
1884
1801
|
* Subscribe to the progress of a storage task
|
|
1885
1802
|
*
|
|
@@ -1888,12 +1805,9 @@ function _fromTask(task) {
|
|
|
1888
1805
|
* @param options
|
|
1889
1806
|
*/
|
|
1890
1807
|
|
|
1891
|
-
|
|
1892
1808
|
function useStorageTask(task, ref, options) {
|
|
1893
1809
|
var observableId = "storage:task:" + ref.toString();
|
|
1894
|
-
|
|
1895
|
-
var observable$ = _fromTask(task);
|
|
1896
|
-
|
|
1810
|
+
var observable$ = fromTask(task);
|
|
1897
1811
|
return useObservable(observableId, observable$, options);
|
|
1898
1812
|
}
|
|
1899
1813
|
/**
|
|
@@ -1960,34 +1874,24 @@ function StorageImage(props) {
|
|
|
1960
1874
|
}
|
|
1961
1875
|
}
|
|
1962
1876
|
|
|
1877
|
+
var AppCheckSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1963
1878
|
var AuthSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1879
|
+
var AnalyticsSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1964
1880
|
var DatabaseSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1965
1881
|
var FirestoreSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1882
|
+
var FunctionsSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1966
1883
|
var StorageSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1967
1884
|
var PerformanceSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1968
1885
|
var RemoteConfigSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1969
1886
|
|
|
1970
1887
|
function getSdkProvider(SdkContext) {
|
|
1971
1888
|
return function SdkProvider(props) {
|
|
1972
|
-
var
|
|
1973
|
-
var sdkAppName; // @ts-ignore Auth doesn't have field 'app'
|
|
1974
|
-
|
|
1975
|
-
if (props.sdk.app) {
|
|
1976
|
-
// @ts-ignore Auth doesn't have field 'app'
|
|
1977
|
-
sdkAppName = props.sdk.app.name; // @ts-ignore only Auth has field 'name'
|
|
1978
|
-
} else if (props.sdk.name) {
|
|
1979
|
-
// @ts-ignore only Auth has field 'name'
|
|
1980
|
-
sdkAppName = props.sdk.name;
|
|
1981
|
-
}
|
|
1982
|
-
|
|
1983
|
-
if (sdkAppName !== contextualAppName) {
|
|
1984
|
-
throw new Error('sdk was initialized with a different firebase app');
|
|
1985
|
-
}
|
|
1986
|
-
|
|
1987
|
-
if (!props.sdk) {
|
|
1988
|
-
throw new Error('no sdk provided');
|
|
1989
|
-
}
|
|
1889
|
+
var _props$sdk, _props$sdk$app;
|
|
1990
1890
|
|
|
1891
|
+
if (!props.sdk) throw new Error('no sdk provided');
|
|
1892
|
+
var contextualAppName = useFirebaseApp().name;
|
|
1893
|
+
var sdkAppName = props == null ? void 0 : (_props$sdk = props.sdk) == null ? void 0 : (_props$sdk$app = _props$sdk.app) == null ? void 0 : _props$sdk$app.name;
|
|
1894
|
+
if (sdkAppName !== contextualAppName) throw new Error('sdk was initialized with a different firebase app');
|
|
1991
1895
|
return createElement(SdkContext.Provider, _extends({
|
|
1992
1896
|
value: props.sdk
|
|
1993
1897
|
}, props));
|
|
@@ -2019,21 +1923,33 @@ function useInitSdk(sdkName, SdkContext, sdkInitializer, options) {
|
|
|
2019
1923
|
return useObservable("firebase-sdk:" + sdkName + ":" + firebaseApp.name, from(initializeSdk), options);
|
|
2020
1924
|
}
|
|
2021
1925
|
|
|
1926
|
+
var AppCheckProvider = /*#__PURE__*/getSdkProvider(AppCheckSdkContext);
|
|
2022
1927
|
var AuthProvider = /*#__PURE__*/getSdkProvider(AuthSdkContext);
|
|
1928
|
+
var AnalyticsProvider = /*#__PURE__*/getSdkProvider(AnalyticsSdkContext);
|
|
2023
1929
|
var DatabaseProvider = /*#__PURE__*/getSdkProvider(DatabaseSdkContext);
|
|
2024
1930
|
var FirestoreProvider = /*#__PURE__*/getSdkProvider(FirestoreSdkContext);
|
|
1931
|
+
var FunctionsProvider = /*#__PURE__*/getSdkProvider(FunctionsSdkContext);
|
|
2025
1932
|
var PerformanceProvider = /*#__PURE__*/getSdkProvider(PerformanceSdkContext);
|
|
2026
1933
|
var StorageProvider = /*#__PURE__*/getSdkProvider(StorageSdkContext);
|
|
2027
1934
|
var RemoteConfigProvider = /*#__PURE__*/getSdkProvider(RemoteConfigSdkContext);
|
|
1935
|
+
var useAppCheck = function useAppCheck() {
|
|
1936
|
+
return useSdk(AppCheckSdkContext);
|
|
1937
|
+
};
|
|
2028
1938
|
var useAuth = function useAuth() {
|
|
2029
1939
|
return useSdk(AuthSdkContext);
|
|
2030
1940
|
};
|
|
1941
|
+
var useAnalytics = function useAnalytics() {
|
|
1942
|
+
return useSdk(AnalyticsSdkContext);
|
|
1943
|
+
};
|
|
2031
1944
|
var useDatabase = function useDatabase() {
|
|
2032
1945
|
return useSdk(DatabaseSdkContext);
|
|
2033
1946
|
};
|
|
2034
1947
|
var useFirestore = function useFirestore() {
|
|
2035
1948
|
return useSdk(FirestoreSdkContext);
|
|
2036
1949
|
};
|
|
1950
|
+
var useFunctions = function useFunctions() {
|
|
1951
|
+
return useSdk(FunctionsSdkContext);
|
|
1952
|
+
};
|
|
2037
1953
|
var usePerformance = function usePerformance() {
|
|
2038
1954
|
return useSdk(PerformanceSdkContext);
|
|
2039
1955
|
};
|
|
@@ -2043,15 +1959,24 @@ var useStorage = function useStorage() {
|
|
|
2043
1959
|
var useRemoteConfig = function useRemoteConfig() {
|
|
2044
1960
|
return useSdk(RemoteConfigSdkContext);
|
|
2045
1961
|
};
|
|
1962
|
+
var useInitAppCheck = function useInitAppCheck(initializer, options) {
|
|
1963
|
+
return useInitSdk('appcheck', AppCheckSdkContext, initializer, options);
|
|
1964
|
+
};
|
|
2046
1965
|
var useInitAuth = function useInitAuth(initializer, options) {
|
|
2047
1966
|
return useInitSdk('auth', AuthSdkContext, initializer, options);
|
|
2048
1967
|
};
|
|
1968
|
+
var useInitAnalytics = function useInitAnalytics(initializer, options) {
|
|
1969
|
+
return useInitSdk('analytics', AnalyticsSdkContext, initializer, options);
|
|
1970
|
+
};
|
|
2049
1971
|
var useInitDatabase = function useInitDatabase(initializer, options) {
|
|
2050
1972
|
return useInitSdk('database', DatabaseSdkContext, initializer, options);
|
|
2051
1973
|
};
|
|
2052
1974
|
var useInitFirestore = function useInitFirestore(initializer, options) {
|
|
2053
1975
|
return useInitSdk('firestore', FirestoreSdkContext, initializer, options);
|
|
2054
1976
|
};
|
|
1977
|
+
var useInitFunctions = function useInitFunctions(initializer, options) {
|
|
1978
|
+
return useInitSdk('functions', FunctionsSdkContext, initializer, options);
|
|
1979
|
+
};
|
|
2055
1980
|
var useInitPerformance = function useInitPerformance(initializer, options) {
|
|
2056
1981
|
return useInitSdk('performance', PerformanceSdkContext, initializer, options);
|
|
2057
1982
|
};
|
|
@@ -2097,5 +2022,5 @@ function checkIdField(options) {
|
|
|
2097
2022
|
return checkOptions(options, 'idField');
|
|
2098
2023
|
}
|
|
2099
2024
|
|
|
2100
|
-
export { AuthCheck, AuthProvider, ClaimsCheck, DatabaseProvider, FirebaseAppProvider, FirestoreProvider, PerformanceProvider, ReactFireError, RemoteConfigProvider, StorageImage, StorageProvider, SuspenseWithPerf, checkIdField, checkOptions, checkinitialData, preloadFirestoreDoc, preloadObservable, preloadUser, useAuth, useDatabase, useDatabaseList, useDatabaseListData, useDatabaseObject, useDatabaseObjectData, useFirebaseApp, useFirestore, useFirestoreCollection, useFirestoreCollectionData, useFirestoreDoc, useFirestoreDocData, useFirestoreDocDataOnce, useFirestoreDocOnce, useIdTokenResult, useInitAuth, useInitDatabase, useInitFirestore, useInitPerformance, useInitRemoteConfig, useInitStorage, useIsSuspenseEnabled, useObservable, usePerformance, useRemoteConfig, useRemoteConfigAll, useRemoteConfigBoolean, useRemoteConfigNumber, useRemoteConfigString, useRemoteConfigValue, useSigninCheck, useStorage, useStorageDownloadURL, useStorageTask, useSuspenseEnabledFromConfigAndContext, useUser, version };
|
|
2025
|
+
export { AnalyticsProvider, AnalyticsSdkContext, AppCheckProvider, AppCheckSdkContext, AuthCheck, AuthProvider, AuthSdkContext, ClaimsCheck, DatabaseProvider, DatabaseSdkContext, FirebaseAppProvider, FirestoreProvider, FirestoreSdkContext, FunctionsProvider, FunctionsSdkContext, PerformanceProvider, PerformanceSdkContext, ReactFireError, RemoteConfigProvider, RemoteConfigSdkContext, StorageImage, StorageProvider, StorageSdkContext, SuspenseWithPerf, checkIdField, checkOptions, checkinitialData, preloadFirestoreDoc, preloadObservable, preloadUser, useAnalytics, useAppCheck, useAuth, useCallableFunctionResponse, useDatabase, useDatabaseList, useDatabaseListData, useDatabaseObject, useDatabaseObjectData, useFirebaseApp, useFirestore, useFirestoreCollection, useFirestoreCollectionData, useFirestoreDoc, useFirestoreDocData, useFirestoreDocDataOnce, useFirestoreDocOnce, useFunctions, useIdTokenResult, useInitAnalytics, useInitAppCheck, useInitAuth, useInitDatabase, useInitFirestore, useInitFunctions, useInitPerformance, useInitRemoteConfig, useInitStorage, useIsSuspenseEnabled, useObservable, usePerformance, useRemoteConfig, useRemoteConfigAll, useRemoteConfigBoolean, useRemoteConfigNumber, useRemoteConfigString, useRemoteConfigValue, useSigninCheck, useStorage, useStorageDownloadURL, useStorageTask, useSuspenseEnabledFromConfigAndContext, useUser, version };
|
|
2101
2026
|
//# sourceMappingURL=reactfire.esm.js.map
|