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
|
@@ -10,7 +10,8 @@ var app = require('firebase/app');
|
|
|
10
10
|
var database = require('rxfire/database');
|
|
11
11
|
var firestore = require('rxfire/firestore');
|
|
12
12
|
var firestore$1 = require('firebase/firestore');
|
|
13
|
-
var
|
|
13
|
+
var functions = require('rxfire/functions');
|
|
14
|
+
var remoteConfig = require('rxfire/remote-config');
|
|
14
15
|
var storage = require('rxfire/storage');
|
|
15
16
|
var storage$1 = require('firebase/storage');
|
|
16
17
|
|
|
@@ -960,9 +961,9 @@ try {
|
|
|
960
961
|
|
|
961
962
|
var DEFAULT_APP_NAME = '[DEFAULT]';
|
|
962
963
|
var FirebaseAppContext = /*#__PURE__*/React.createContext(undefined);
|
|
963
|
-
var SuspenseEnabledContext = /*#__PURE__*/React.createContext(false); // @ts-
|
|
964
|
+
var SuspenseEnabledContext = /*#__PURE__*/React.createContext(false); // @ts-expect-error: "__REACTFIRE_VERSION__" is replaced with actual ReactFire version (see babel.config.js)
|
|
964
965
|
|
|
965
|
-
var version = "4.0.0-exp.
|
|
966
|
+
var version = "4.0.0-exp.f654109";
|
|
966
967
|
|
|
967
968
|
var shallowEq = function shallowEq(a, b) {
|
|
968
969
|
return a === b || [].concat(Object.keys(a), Object.keys(b)).every(function (key) {
|
|
@@ -1317,33 +1318,13 @@ function useDatabaseObject(ref, options) {
|
|
|
1317
1318
|
var observableId = "database:object:" + ref.toString();
|
|
1318
1319
|
var observable$ = database.object(ref);
|
|
1319
1320
|
return useObservable(observableId, observable$, options);
|
|
1320
|
-
} // ============================================================================
|
|
1321
|
-
// TODO: switch to rxfire's objectVal once this PR is merged:
|
|
1322
|
-
// https://github.com/firebase/firebase-js-sdk/pull/2352
|
|
1323
|
-
|
|
1324
|
-
function objectVal(query, keyField) {
|
|
1325
|
-
return database.object(query).pipe(operators.map(function (change) {
|
|
1326
|
-
return changeToData(change, keyField);
|
|
1327
|
-
}));
|
|
1328
1321
|
}
|
|
1329
|
-
|
|
1330
|
-
function changeToData(change, keyField) {
|
|
1331
|
-
var _ref;
|
|
1332
|
-
|
|
1333
|
-
var val = change.snapshot.val(); // don't worry about setting IDs if the value is a primitive type
|
|
1334
|
-
|
|
1335
|
-
if (typeof val !== 'object') {
|
|
1336
|
-
return val;
|
|
1337
|
-
}
|
|
1338
|
-
|
|
1339
|
-
return _extends({}, change.snapshot.val(), keyField ? (_ref = {}, _ref[keyField] = change.snapshot.key, _ref) : null);
|
|
1340
|
-
} // ============================================================================
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
1322
|
function useDatabaseObjectData(ref, options) {
|
|
1344
1323
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1345
1324
|
var observableId = "database:objectVal:" + ref.toString() + ":idField=" + idField;
|
|
1346
|
-
var observable$ = objectVal(ref,
|
|
1325
|
+
var observable$ = database.objectVal(ref, {
|
|
1326
|
+
keyField: idField
|
|
1327
|
+
});
|
|
1347
1328
|
return useObservable(observableId, observable$, options);
|
|
1348
1329
|
}
|
|
1349
1330
|
/**
|
|
@@ -1361,15 +1342,17 @@ function useDatabaseList(ref, options) {
|
|
|
1361
1342
|
function useDatabaseListData(ref, options) {
|
|
1362
1343
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1363
1344
|
var observableId = "database:listVal:" + getUniqueIdForDatabaseQuery(ref) + ":idField=" + idField;
|
|
1364
|
-
var observable$ = database.listVal(ref,
|
|
1345
|
+
var observable$ = database.listVal(ref, {
|
|
1346
|
+
keyField: idField
|
|
1347
|
+
});
|
|
1365
1348
|
return useObservable(observableId, observable$, options);
|
|
1366
1349
|
}
|
|
1367
1350
|
|
|
1368
1351
|
var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
1369
1352
|
_inheritsLoose(SuspenseSubject, _Subject);
|
|
1370
1353
|
|
|
1371
|
-
// @ts-
|
|
1372
|
-
// @ts-
|
|
1354
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1355
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1373
1356
|
function SuspenseSubject(innerObservable, _timeoutWindow) {
|
|
1374
1357
|
var _this;
|
|
1375
1358
|
|
|
@@ -1460,6 +1443,8 @@ var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
|
1460
1443
|
// As it is now, this will burn the cache entry until the timeout fires.
|
|
1461
1444
|
if (this._error) {
|
|
1462
1445
|
throw this._error;
|
|
1446
|
+
} else if (!this.hasValue) {
|
|
1447
|
+
throw Error('Can only get value if SuspenseSubject has a value');
|
|
1463
1448
|
}
|
|
1464
1449
|
|
|
1465
1450
|
return this._value;
|
|
@@ -1499,6 +1484,39 @@ function preloadObservable(source, id) {
|
|
|
1499
1484
|
return observable;
|
|
1500
1485
|
}
|
|
1501
1486
|
}
|
|
1487
|
+
|
|
1488
|
+
function reducerFactory(observable) {
|
|
1489
|
+
return function reducer(state, action) {
|
|
1490
|
+
// always make sure these values are in sync with the observable
|
|
1491
|
+
var newState = _extends({}, state, {
|
|
1492
|
+
hasEmitted: state.hasEmitted || observable.hasValue,
|
|
1493
|
+
error: observable.ourError,
|
|
1494
|
+
firstValuePromise: observable.firstEmission
|
|
1495
|
+
});
|
|
1496
|
+
|
|
1497
|
+
if (observable.hasValue) {
|
|
1498
|
+
newState.data = observable.value;
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
switch (action) {
|
|
1502
|
+
case 'value':
|
|
1503
|
+
newState.status = 'success';
|
|
1504
|
+
return newState;
|
|
1505
|
+
|
|
1506
|
+
case 'error':
|
|
1507
|
+
newState.status = 'error';
|
|
1508
|
+
return newState;
|
|
1509
|
+
|
|
1510
|
+
case 'complete':
|
|
1511
|
+
newState.isComplete = true;
|
|
1512
|
+
return newState;
|
|
1513
|
+
|
|
1514
|
+
default:
|
|
1515
|
+
throw new Error("invalid action \"" + action + "\"");
|
|
1516
|
+
}
|
|
1517
|
+
};
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1502
1520
|
function useObservable(observableId, source, config) {
|
|
1503
1521
|
var _config$initialData, _config, _config2;
|
|
1504
1522
|
|
|
@@ -1506,71 +1524,52 @@ function useObservable(observableId, source, config) {
|
|
|
1506
1524
|
config = {};
|
|
1507
1525
|
}
|
|
1508
1526
|
|
|
1527
|
+
// Register the observable with the cache
|
|
1509
1528
|
if (!observableId) {
|
|
1510
1529
|
throw new Error('cannot call useObservable without an observableId');
|
|
1511
1530
|
}
|
|
1512
1531
|
|
|
1513
|
-
var observable = preloadObservable(source, observableId);
|
|
1532
|
+
var observable = preloadObservable(source, observableId); // Suspend if suspense is enabled and no initial data exists
|
|
1533
|
+
|
|
1514
1534
|
var hasInitialData = config.hasOwnProperty('initialData') || config.hasOwnProperty('startWithValue');
|
|
1535
|
+
var hasData = observable.hasValue || hasInitialData;
|
|
1515
1536
|
var suspenseEnabled = useSuspenseEnabledFromConfigAndContext(config.suspense);
|
|
1516
1537
|
|
|
1517
|
-
if (suspenseEnabled === true && !
|
|
1538
|
+
if (suspenseEnabled === true && !hasData) {
|
|
1518
1539
|
throw observable.firstEmission;
|
|
1519
1540
|
}
|
|
1520
1541
|
|
|
1521
|
-
var
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
var _React$useState2 = React.useState(false),
|
|
1530
|
-
isComplete = _React$useState2[0],
|
|
1531
|
-
setIsComplete = _React$useState2[1];
|
|
1542
|
+
var initialState = {
|
|
1543
|
+
status: hasData ? 'success' : 'loading',
|
|
1544
|
+
hasEmitted: hasData,
|
|
1545
|
+
isComplete: false,
|
|
1546
|
+
data: observable.hasValue ? observable.value : (_config$initialData = (_config = config) == null ? void 0 : _config.initialData) != null ? _config$initialData : (_config2 = config) == null ? void 0 : _config2.startWithValue,
|
|
1547
|
+
error: observable.ourError,
|
|
1548
|
+
firstValuePromise: observable.firstEmission
|
|
1549
|
+
};
|
|
1532
1550
|
|
|
1533
|
-
var _React$
|
|
1534
|
-
|
|
1535
|
-
|
|
1551
|
+
var _React$useReducer = React.useReducer(reducerFactory(observable), initialState),
|
|
1552
|
+
status = _React$useReducer[0],
|
|
1553
|
+
dispatch = _React$useReducer[1];
|
|
1536
1554
|
|
|
1537
1555
|
React.useEffect(function () {
|
|
1538
1556
|
var subscription = observable.subscribe({
|
|
1539
|
-
next: function next(
|
|
1540
|
-
|
|
1541
|
-
return v;
|
|
1542
|
-
});
|
|
1557
|
+
next: function next() {
|
|
1558
|
+
dispatch('value');
|
|
1543
1559
|
},
|
|
1544
1560
|
error: function error(e) {
|
|
1545
|
-
|
|
1561
|
+
dispatch('error');
|
|
1546
1562
|
throw e;
|
|
1547
1563
|
},
|
|
1548
1564
|
complete: function complete() {
|
|
1549
|
-
|
|
1565
|
+
dispatch('complete');
|
|
1550
1566
|
}
|
|
1551
1567
|
});
|
|
1552
1568
|
return function () {
|
|
1553
1569
|
return subscription.unsubscribe();
|
|
1554
1570
|
};
|
|
1555
1571
|
}, [observable]);
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
if (hasError) {
|
|
1559
|
-
status = 'error';
|
|
1560
|
-
} else if (observable.hasValue || hasInitialData) {
|
|
1561
|
-
status = 'success';
|
|
1562
|
-
} else {
|
|
1563
|
-
status = 'loading';
|
|
1564
|
-
}
|
|
1565
|
-
|
|
1566
|
-
return {
|
|
1567
|
-
status: status,
|
|
1568
|
-
hasEmitted: observable.hasValue || hasInitialData,
|
|
1569
|
-
isComplete: isComplete,
|
|
1570
|
-
data: latest,
|
|
1571
|
-
error: observable.ourError,
|
|
1572
|
-
firstValuePromise: observable.firstEmission
|
|
1573
|
-
};
|
|
1572
|
+
return status;
|
|
1574
1573
|
}
|
|
1575
1574
|
|
|
1576
1575
|
var cachedQueries$1 = globalThis._reactFireFirestoreQueryCache || [];
|
|
@@ -1656,7 +1655,9 @@ function useFirestoreDocOnce(ref, options) {
|
|
|
1656
1655
|
function useFirestoreDocData(ref, options) {
|
|
1657
1656
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1658
1657
|
var observableId = "firestore:docData:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1659
|
-
var observable = firestore.docData(ref,
|
|
1658
|
+
var observable = firestore.docData(ref, {
|
|
1659
|
+
idField: idField
|
|
1660
|
+
});
|
|
1660
1661
|
return useObservable(observableId, observable, options);
|
|
1661
1662
|
}
|
|
1662
1663
|
/**
|
|
@@ -1666,7 +1667,9 @@ function useFirestoreDocData(ref, options) {
|
|
|
1666
1667
|
function useFirestoreDocDataOnce(ref, options) {
|
|
1667
1668
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1668
1669
|
var observableId = "firestore:docDataOnce:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1669
|
-
var observable$ = firestore.docData(ref,
|
|
1670
|
+
var observable$ = firestore.docData(ref, {
|
|
1671
|
+
idField: idField
|
|
1672
|
+
}).pipe(operators.first());
|
|
1670
1673
|
return useObservable(observableId, observable$, options);
|
|
1671
1674
|
}
|
|
1672
1675
|
/**
|
|
@@ -1685,7 +1688,24 @@ function useFirestoreCollection(query, options) {
|
|
|
1685
1688
|
function useFirestoreCollectionData(query, options) {
|
|
1686
1689
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1687
1690
|
var observableId = "firestore:collectionData:" + getUniqueIdForFirestoreQuery(query) + ":idField=" + idField;
|
|
1688
|
-
var observable$ = firestore.collectionData(query,
|
|
1691
|
+
var observable$ = firestore.collectionData(query, {
|
|
1692
|
+
idField: idField
|
|
1693
|
+
});
|
|
1694
|
+
return useObservable(observableId, observable$, options);
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1697
|
+
/**
|
|
1698
|
+
* Calls a callable function.
|
|
1699
|
+
*
|
|
1700
|
+
* @param functionName - The name of the function to call
|
|
1701
|
+
* @param options
|
|
1702
|
+
*/
|
|
1703
|
+
|
|
1704
|
+
function useCallableFunctionResponse(functionName, options) {
|
|
1705
|
+
var functions$1 = useFunctions();
|
|
1706
|
+
var observableId = "functions:callableResponse:" + functionName + ":" + JSON.stringify(options == null ? void 0 : options.data) + ":" + JSON.stringify(options == null ? void 0 : options.httpsCallableOptions);
|
|
1707
|
+
var obsFactory = functions.httpsCallable(functions$1, functionName, options == null ? void 0 : options.httpsCallableOptions);
|
|
1708
|
+
var observable$ = obsFactory(options == null ? void 0 : options.data);
|
|
1689
1709
|
return useObservable(observableId, observable$, options);
|
|
1690
1710
|
}
|
|
1691
1711
|
|
|
@@ -1720,76 +1740,6 @@ function SuspenseWithPerf(_ref) {
|
|
|
1720
1740
|
}, children);
|
|
1721
1741
|
}
|
|
1722
1742
|
|
|
1723
|
-
function parameter$(_ref) {
|
|
1724
|
-
var remoteConfig$1 = _ref.remoteConfig,
|
|
1725
|
-
key = _ref.key,
|
|
1726
|
-
getter = _ref.getter;
|
|
1727
|
-
return new rxjs.Observable(function (subscriber) {
|
|
1728
|
-
remoteConfig.ensureInitialized(remoteConfig$1).then(function () {
|
|
1729
|
-
// 'this' for the getter loses context in the next()
|
|
1730
|
-
// call, so it needs to be bound.
|
|
1731
|
-
subscriber.next(getter.bind(remoteConfig$1)(key));
|
|
1732
|
-
});
|
|
1733
|
-
});
|
|
1734
|
-
}
|
|
1735
|
-
|
|
1736
|
-
function getValue(remoteConfig$1, key) {
|
|
1737
|
-
var getter = function getter() {
|
|
1738
|
-
return remoteConfig.getValue(remoteConfig$1, key);
|
|
1739
|
-
};
|
|
1740
|
-
|
|
1741
|
-
return parameter$({
|
|
1742
|
-
remoteConfig: remoteConfig$1,
|
|
1743
|
-
key: key,
|
|
1744
|
-
getter: getter
|
|
1745
|
-
});
|
|
1746
|
-
}
|
|
1747
|
-
function getString(remoteConfig$1, key) {
|
|
1748
|
-
var getter = function getter() {
|
|
1749
|
-
return remoteConfig.getString(remoteConfig$1, key);
|
|
1750
|
-
};
|
|
1751
|
-
|
|
1752
|
-
return parameter$({
|
|
1753
|
-
remoteConfig: remoteConfig$1,
|
|
1754
|
-
key: key,
|
|
1755
|
-
getter: getter
|
|
1756
|
-
});
|
|
1757
|
-
}
|
|
1758
|
-
function getNumber(remoteConfig$1, key) {
|
|
1759
|
-
var getter = function getter() {
|
|
1760
|
-
return remoteConfig.getNumber(remoteConfig$1, key);
|
|
1761
|
-
};
|
|
1762
|
-
|
|
1763
|
-
return parameter$({
|
|
1764
|
-
remoteConfig: remoteConfig$1,
|
|
1765
|
-
key: key,
|
|
1766
|
-
getter: getter
|
|
1767
|
-
});
|
|
1768
|
-
}
|
|
1769
|
-
function getBoolean(remoteConfig$1, key) {
|
|
1770
|
-
var getter = function getter() {
|
|
1771
|
-
return remoteConfig.getBoolean(remoteConfig$1, key);
|
|
1772
|
-
};
|
|
1773
|
-
|
|
1774
|
-
return parameter$({
|
|
1775
|
-
remoteConfig: remoteConfig$1,
|
|
1776
|
-
key: key,
|
|
1777
|
-
getter: getter
|
|
1778
|
-
});
|
|
1779
|
-
}
|
|
1780
|
-
function getAll(remoteConfig$1) {
|
|
1781
|
-
var getter = function getter() {
|
|
1782
|
-
return remoteConfig.getAll(remoteConfig$1);
|
|
1783
|
-
}; // No key is needed for getAll()
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
return parameter$({
|
|
1787
|
-
remoteConfig: remoteConfig$1,
|
|
1788
|
-
key: '',
|
|
1789
|
-
getter: getter
|
|
1790
|
-
});
|
|
1791
|
-
}
|
|
1792
|
-
|
|
1793
1743
|
/**
|
|
1794
1744
|
* Helper function to construct type safe functions. Since Remote Config has
|
|
1795
1745
|
* methods that return different types for values, we need to be extra safe
|
|
@@ -1800,12 +1750,8 @@ function getAll(remoteConfig$1) {
|
|
|
1800
1750
|
*/
|
|
1801
1751
|
|
|
1802
1752
|
function useRemoteConfigValue_INTERNAL(key, getter) {
|
|
1803
|
-
var
|
|
1804
|
-
|
|
1805
|
-
var remoteConfig = useRemoteConfig(); // INVESTIGATE need to use a public API to get at the app name, one doesn't appear to exist...
|
|
1806
|
-
// we might need to iterate over the Firebase apps and check for remoteConfig equality? this works for now
|
|
1807
|
-
|
|
1808
|
-
var appName = (_remoteConfig$_storag = remoteConfig._storage) == null ? void 0 : _remoteConfig$_storag.appName;
|
|
1753
|
+
var remoteConfig = useRemoteConfig();
|
|
1754
|
+
var appName = remoteConfig.app.name;
|
|
1809
1755
|
var $value = getter(remoteConfig, key);
|
|
1810
1756
|
var observableId = "remoteConfig:" + key + ":" + getter.name + ":" + appName;
|
|
1811
1757
|
return useObservable(observableId, $value);
|
|
@@ -1815,75 +1761,46 @@ function useRemoteConfigValue_INTERNAL(key, getter) {
|
|
|
1815
1761
|
* Remote Config Value.
|
|
1816
1762
|
*
|
|
1817
1763
|
* @param key The parameter key in Remote Config
|
|
1818
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1819
1764
|
*/
|
|
1820
1765
|
|
|
1821
1766
|
|
|
1822
1767
|
function useRemoteConfigValue(key) {
|
|
1823
|
-
return useRemoteConfigValue_INTERNAL(key, getValue);
|
|
1768
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getValue);
|
|
1824
1769
|
}
|
|
1825
1770
|
/**
|
|
1826
1771
|
* Convience method similar to useRemoteConfigValue. Returns a `string` from a Remote Config parameter.
|
|
1827
1772
|
* @param key The parameter key in Remote Config
|
|
1828
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1829
1773
|
*/
|
|
1830
1774
|
|
|
1831
1775
|
function useRemoteConfigString(key) {
|
|
1832
|
-
return useRemoteConfigValue_INTERNAL(key, getString);
|
|
1776
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getString);
|
|
1833
1777
|
}
|
|
1834
1778
|
/**
|
|
1835
1779
|
* Convience method similar to useRemoteConfigValue. Returns a `number` from a Remote Config parameter.
|
|
1836
1780
|
* @param key The parameter key in Remote Config
|
|
1837
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1838
1781
|
*/
|
|
1839
1782
|
|
|
1840
1783
|
function useRemoteConfigNumber(key) {
|
|
1841
|
-
return useRemoteConfigValue_INTERNAL(key, getNumber);
|
|
1784
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getNumber);
|
|
1842
1785
|
}
|
|
1843
1786
|
/**
|
|
1844
1787
|
* Convience method similar to useRemoteConfigValue. Returns a `boolean` from a Remote Config parameter.
|
|
1845
1788
|
* @param key The parameter key in Remote Config
|
|
1846
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1847
1789
|
*/
|
|
1848
1790
|
|
|
1849
1791
|
function useRemoteConfigBoolean(key) {
|
|
1850
|
-
return useRemoteConfigValue_INTERNAL(key, getBoolean);
|
|
1792
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getBoolean);
|
|
1851
1793
|
}
|
|
1852
1794
|
/**
|
|
1853
1795
|
* Convience method similar to useRemoteConfigValue. Returns allRemote Config parameters.
|
|
1854
1796
|
* @param key The parameter key in Remote Config
|
|
1855
|
-
* @param remoteConfig Optional instance. If not provided ReactFire will either grab the default instance or lazy load.
|
|
1856
1797
|
*/
|
|
1857
1798
|
|
|
1858
1799
|
function useRemoteConfigAll(key) {
|
|
1859
|
-
return useRemoteConfigValue_INTERNAL(key, getAll);
|
|
1800
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getAll);
|
|
1860
1801
|
}
|
|
1861
1802
|
|
|
1862
1803
|
var _excluded = ["storage", "storagePath", "suspense", "placeHolder"];
|
|
1863
|
-
/**
|
|
1864
|
-
* modified version of rxFire's _fromTask
|
|
1865
|
-
*
|
|
1866
|
-
* @param task
|
|
1867
|
-
*/
|
|
1868
|
-
|
|
1869
|
-
function _fromTask(task) {
|
|
1870
|
-
return new rxjs.Observable(function (subscriber) {
|
|
1871
|
-
var progress = function progress(snap) {
|
|
1872
|
-
return subscriber.next(snap);
|
|
1873
|
-
};
|
|
1874
|
-
|
|
1875
|
-
var error = function error(e) {
|
|
1876
|
-
return subscriber.error(e);
|
|
1877
|
-
};
|
|
1878
|
-
|
|
1879
|
-
var complete = function complete() {
|
|
1880
|
-
return subscriber.complete();
|
|
1881
|
-
};
|
|
1882
|
-
|
|
1883
|
-
task.on('state_changed', progress, error, complete); // I REMOVED THE UNSUBSCRIBE RETURN BECAUSE IT CANCELS THE UPLOAD
|
|
1884
|
-
// https://github.com/firebase/firebase-js-sdk/issues/1659
|
|
1885
|
-
});
|
|
1886
|
-
}
|
|
1887
1804
|
/**
|
|
1888
1805
|
* Subscribe to the progress of a storage task
|
|
1889
1806
|
*
|
|
@@ -1892,12 +1809,9 @@ function _fromTask(task) {
|
|
|
1892
1809
|
* @param options
|
|
1893
1810
|
*/
|
|
1894
1811
|
|
|
1895
|
-
|
|
1896
1812
|
function useStorageTask(task, ref, options) {
|
|
1897
1813
|
var observableId = "storage:task:" + ref.toString();
|
|
1898
|
-
|
|
1899
|
-
var observable$ = _fromTask(task);
|
|
1900
|
-
|
|
1814
|
+
var observable$ = storage.fromTask(task);
|
|
1901
1815
|
return useObservable(observableId, observable$, options);
|
|
1902
1816
|
}
|
|
1903
1817
|
/**
|
|
@@ -1964,34 +1878,24 @@ function StorageImage(props) {
|
|
|
1964
1878
|
}
|
|
1965
1879
|
}
|
|
1966
1880
|
|
|
1881
|
+
var AppCheckSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1967
1882
|
var AuthSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1883
|
+
var AnalyticsSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1968
1884
|
var DatabaseSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1969
1885
|
var FirestoreSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1886
|
+
var FunctionsSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1970
1887
|
var StorageSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1971
1888
|
var PerformanceSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1972
1889
|
var RemoteConfigSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1973
1890
|
|
|
1974
1891
|
function getSdkProvider(SdkContext) {
|
|
1975
1892
|
return function SdkProvider(props) {
|
|
1976
|
-
var
|
|
1977
|
-
var sdkAppName; // @ts-ignore Auth doesn't have field 'app'
|
|
1978
|
-
|
|
1979
|
-
if (props.sdk.app) {
|
|
1980
|
-
// @ts-ignore Auth doesn't have field 'app'
|
|
1981
|
-
sdkAppName = props.sdk.app.name; // @ts-ignore only Auth has field 'name'
|
|
1982
|
-
} else if (props.sdk.name) {
|
|
1983
|
-
// @ts-ignore only Auth has field 'name'
|
|
1984
|
-
sdkAppName = props.sdk.name;
|
|
1985
|
-
}
|
|
1986
|
-
|
|
1987
|
-
if (sdkAppName !== contextualAppName) {
|
|
1988
|
-
throw new Error('sdk was initialized with a different firebase app');
|
|
1989
|
-
}
|
|
1990
|
-
|
|
1991
|
-
if (!props.sdk) {
|
|
1992
|
-
throw new Error('no sdk provided');
|
|
1993
|
-
}
|
|
1893
|
+
var _props$sdk, _props$sdk$app;
|
|
1994
1894
|
|
|
1895
|
+
if (!props.sdk) throw new Error('no sdk provided');
|
|
1896
|
+
var contextualAppName = useFirebaseApp().name;
|
|
1897
|
+
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;
|
|
1898
|
+
if (sdkAppName !== contextualAppName) throw new Error('sdk was initialized with a different firebase app');
|
|
1995
1899
|
return React.createElement(SdkContext.Provider, _extends({
|
|
1996
1900
|
value: props.sdk
|
|
1997
1901
|
}, props));
|
|
@@ -2023,21 +1927,33 @@ function useInitSdk(sdkName, SdkContext, sdkInitializer, options) {
|
|
|
2023
1927
|
return useObservable("firebase-sdk:" + sdkName + ":" + firebaseApp.name, rxjs.from(initializeSdk), options);
|
|
2024
1928
|
}
|
|
2025
1929
|
|
|
1930
|
+
var AppCheckProvider = /*#__PURE__*/getSdkProvider(AppCheckSdkContext);
|
|
2026
1931
|
var AuthProvider = /*#__PURE__*/getSdkProvider(AuthSdkContext);
|
|
1932
|
+
var AnalyticsProvider = /*#__PURE__*/getSdkProvider(AnalyticsSdkContext);
|
|
2027
1933
|
var DatabaseProvider = /*#__PURE__*/getSdkProvider(DatabaseSdkContext);
|
|
2028
1934
|
var FirestoreProvider = /*#__PURE__*/getSdkProvider(FirestoreSdkContext);
|
|
1935
|
+
var FunctionsProvider = /*#__PURE__*/getSdkProvider(FunctionsSdkContext);
|
|
2029
1936
|
var PerformanceProvider = /*#__PURE__*/getSdkProvider(PerformanceSdkContext);
|
|
2030
1937
|
var StorageProvider = /*#__PURE__*/getSdkProvider(StorageSdkContext);
|
|
2031
1938
|
var RemoteConfigProvider = /*#__PURE__*/getSdkProvider(RemoteConfigSdkContext);
|
|
1939
|
+
var useAppCheck = function useAppCheck() {
|
|
1940
|
+
return useSdk(AppCheckSdkContext);
|
|
1941
|
+
};
|
|
2032
1942
|
var useAuth = function useAuth() {
|
|
2033
1943
|
return useSdk(AuthSdkContext);
|
|
2034
1944
|
};
|
|
1945
|
+
var useAnalytics = function useAnalytics() {
|
|
1946
|
+
return useSdk(AnalyticsSdkContext);
|
|
1947
|
+
};
|
|
2035
1948
|
var useDatabase = function useDatabase() {
|
|
2036
1949
|
return useSdk(DatabaseSdkContext);
|
|
2037
1950
|
};
|
|
2038
1951
|
var useFirestore = function useFirestore() {
|
|
2039
1952
|
return useSdk(FirestoreSdkContext);
|
|
2040
1953
|
};
|
|
1954
|
+
var useFunctions = function useFunctions() {
|
|
1955
|
+
return useSdk(FunctionsSdkContext);
|
|
1956
|
+
};
|
|
2041
1957
|
var usePerformance = function usePerformance() {
|
|
2042
1958
|
return useSdk(PerformanceSdkContext);
|
|
2043
1959
|
};
|
|
@@ -2047,15 +1963,24 @@ var useStorage = function useStorage() {
|
|
|
2047
1963
|
var useRemoteConfig = function useRemoteConfig() {
|
|
2048
1964
|
return useSdk(RemoteConfigSdkContext);
|
|
2049
1965
|
};
|
|
1966
|
+
var useInitAppCheck = function useInitAppCheck(initializer, options) {
|
|
1967
|
+
return useInitSdk('appcheck', AppCheckSdkContext, initializer, options);
|
|
1968
|
+
};
|
|
2050
1969
|
var useInitAuth = function useInitAuth(initializer, options) {
|
|
2051
1970
|
return useInitSdk('auth', AuthSdkContext, initializer, options);
|
|
2052
1971
|
};
|
|
1972
|
+
var useInitAnalytics = function useInitAnalytics(initializer, options) {
|
|
1973
|
+
return useInitSdk('analytics', AnalyticsSdkContext, initializer, options);
|
|
1974
|
+
};
|
|
2053
1975
|
var useInitDatabase = function useInitDatabase(initializer, options) {
|
|
2054
1976
|
return useInitSdk('database', DatabaseSdkContext, initializer, options);
|
|
2055
1977
|
};
|
|
2056
1978
|
var useInitFirestore = function useInitFirestore(initializer, options) {
|
|
2057
1979
|
return useInitSdk('firestore', FirestoreSdkContext, initializer, options);
|
|
2058
1980
|
};
|
|
1981
|
+
var useInitFunctions = function useInitFunctions(initializer, options) {
|
|
1982
|
+
return useInitSdk('functions', FunctionsSdkContext, initializer, options);
|
|
1983
|
+
};
|
|
2059
1984
|
var useInitPerformance = function useInitPerformance(initializer, options) {
|
|
2060
1985
|
return useInitSdk('performance', PerformanceSdkContext, initializer, options);
|
|
2061
1986
|
};
|
|
@@ -2101,17 +2026,29 @@ function checkIdField(options) {
|
|
|
2101
2026
|
return checkOptions(options, 'idField');
|
|
2102
2027
|
}
|
|
2103
2028
|
|
|
2029
|
+
exports.AnalyticsProvider = AnalyticsProvider;
|
|
2030
|
+
exports.AnalyticsSdkContext = AnalyticsSdkContext;
|
|
2031
|
+
exports.AppCheckProvider = AppCheckProvider;
|
|
2032
|
+
exports.AppCheckSdkContext = AppCheckSdkContext;
|
|
2104
2033
|
exports.AuthCheck = AuthCheck;
|
|
2105
2034
|
exports.AuthProvider = AuthProvider;
|
|
2035
|
+
exports.AuthSdkContext = AuthSdkContext;
|
|
2106
2036
|
exports.ClaimsCheck = ClaimsCheck;
|
|
2107
2037
|
exports.DatabaseProvider = DatabaseProvider;
|
|
2038
|
+
exports.DatabaseSdkContext = DatabaseSdkContext;
|
|
2108
2039
|
exports.FirebaseAppProvider = FirebaseAppProvider;
|
|
2109
2040
|
exports.FirestoreProvider = FirestoreProvider;
|
|
2041
|
+
exports.FirestoreSdkContext = FirestoreSdkContext;
|
|
2042
|
+
exports.FunctionsProvider = FunctionsProvider;
|
|
2043
|
+
exports.FunctionsSdkContext = FunctionsSdkContext;
|
|
2110
2044
|
exports.PerformanceProvider = PerformanceProvider;
|
|
2045
|
+
exports.PerformanceSdkContext = PerformanceSdkContext;
|
|
2111
2046
|
exports.ReactFireError = ReactFireError;
|
|
2112
2047
|
exports.RemoteConfigProvider = RemoteConfigProvider;
|
|
2048
|
+
exports.RemoteConfigSdkContext = RemoteConfigSdkContext;
|
|
2113
2049
|
exports.StorageImage = StorageImage;
|
|
2114
2050
|
exports.StorageProvider = StorageProvider;
|
|
2051
|
+
exports.StorageSdkContext = StorageSdkContext;
|
|
2115
2052
|
exports.SuspenseWithPerf = SuspenseWithPerf;
|
|
2116
2053
|
exports.checkIdField = checkIdField;
|
|
2117
2054
|
exports.checkOptions = checkOptions;
|
|
@@ -2119,7 +2056,10 @@ exports.checkinitialData = checkinitialData;
|
|
|
2119
2056
|
exports.preloadFirestoreDoc = preloadFirestoreDoc;
|
|
2120
2057
|
exports.preloadObservable = preloadObservable;
|
|
2121
2058
|
exports.preloadUser = preloadUser;
|
|
2059
|
+
exports.useAnalytics = useAnalytics;
|
|
2060
|
+
exports.useAppCheck = useAppCheck;
|
|
2122
2061
|
exports.useAuth = useAuth;
|
|
2062
|
+
exports.useCallableFunctionResponse = useCallableFunctionResponse;
|
|
2123
2063
|
exports.useDatabase = useDatabase;
|
|
2124
2064
|
exports.useDatabaseList = useDatabaseList;
|
|
2125
2065
|
exports.useDatabaseListData = useDatabaseListData;
|
|
@@ -2133,10 +2073,14 @@ exports.useFirestoreDoc = useFirestoreDoc;
|
|
|
2133
2073
|
exports.useFirestoreDocData = useFirestoreDocData;
|
|
2134
2074
|
exports.useFirestoreDocDataOnce = useFirestoreDocDataOnce;
|
|
2135
2075
|
exports.useFirestoreDocOnce = useFirestoreDocOnce;
|
|
2076
|
+
exports.useFunctions = useFunctions;
|
|
2136
2077
|
exports.useIdTokenResult = useIdTokenResult;
|
|
2078
|
+
exports.useInitAnalytics = useInitAnalytics;
|
|
2079
|
+
exports.useInitAppCheck = useInitAppCheck;
|
|
2137
2080
|
exports.useInitAuth = useInitAuth;
|
|
2138
2081
|
exports.useInitDatabase = useInitDatabase;
|
|
2139
2082
|
exports.useInitFirestore = useInitFirestore;
|
|
2083
|
+
exports.useInitFunctions = useInitFunctions;
|
|
2140
2084
|
exports.useInitPerformance = useInitPerformance;
|
|
2141
2085
|
exports.useInitRemoteConfig = useInitRemoteConfig;
|
|
2142
2086
|
exports.useInitStorage = useInitStorage;
|