reactfire 4.0.0-exp.cb3fede → 4.0.0-exp.eb1428b
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 +12 -34
- 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 +155 -212
- 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 +136 -212
- 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 +9 -7
- package/src/SuspenseSubject.ts +6 -4
- package/src/auth.tsx +6 -6
- 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.eb1428b";
|
|
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) {
|
|
@@ -1065,22 +1066,21 @@ function _preloadUser() {
|
|
|
1065
1066
|
}
|
|
1066
1067
|
|
|
1067
1068
|
function useUser(options) {
|
|
1068
|
-
var
|
|
1069
|
+
var _options2;
|
|
1069
1070
|
|
|
1070
1071
|
var auth$1 = useAuth();
|
|
1071
1072
|
var observableId = "auth:user:" + auth$1.name;
|
|
1072
1073
|
var observable$ = auth.user(auth$1);
|
|
1073
|
-
var currentUser = auth$1.currentUser; // Only use options.initialData if auth.currentUser is unavailable
|
|
1074
1074
|
|
|
1075
|
-
|
|
1076
|
-
var _options$initialData2;
|
|
1075
|
+
var _options = (_options2 = _extends({}, options)) != null ? _options2 : {}; // only set/override initialData if auth has finished loading
|
|
1077
1076
|
|
|
1078
|
-
|
|
1077
|
+
|
|
1078
|
+
if (auth$1.currentUser !== undefined) {
|
|
1079
|
+
_options.initialData = auth$1.currentUser;
|
|
1080
|
+
_options.startWithValue = auth$1.currentUser;
|
|
1079
1081
|
}
|
|
1080
1082
|
|
|
1081
|
-
return useObservable(observableId, observable$,
|
|
1082
|
-
initialData: currentUser
|
|
1083
|
-
}));
|
|
1083
|
+
return useObservable(observableId, observable$, _options);
|
|
1084
1084
|
}
|
|
1085
1085
|
function useIdTokenResult(user, forceRefresh, options) {
|
|
1086
1086
|
if (forceRefresh === void 0) {
|
|
@@ -1317,33 +1317,13 @@ function useDatabaseObject(ref, options) {
|
|
|
1317
1317
|
var observableId = "database:object:" + ref.toString();
|
|
1318
1318
|
var observable$ = database.object(ref);
|
|
1319
1319
|
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
1320
|
}
|
|
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
1321
|
function useDatabaseObjectData(ref, options) {
|
|
1344
1322
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1345
1323
|
var observableId = "database:objectVal:" + ref.toString() + ":idField=" + idField;
|
|
1346
|
-
var observable$ = objectVal(ref,
|
|
1324
|
+
var observable$ = database.objectVal(ref, {
|
|
1325
|
+
keyField: idField
|
|
1326
|
+
});
|
|
1347
1327
|
return useObservable(observableId, observable$, options);
|
|
1348
1328
|
}
|
|
1349
1329
|
/**
|
|
@@ -1361,15 +1341,17 @@ function useDatabaseList(ref, options) {
|
|
|
1361
1341
|
function useDatabaseListData(ref, options) {
|
|
1362
1342
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1363
1343
|
var observableId = "database:listVal:" + getUniqueIdForDatabaseQuery(ref) + ":idField=" + idField;
|
|
1364
|
-
var observable$ = database.listVal(ref,
|
|
1344
|
+
var observable$ = database.listVal(ref, {
|
|
1345
|
+
keyField: idField
|
|
1346
|
+
});
|
|
1365
1347
|
return useObservable(observableId, observable$, options);
|
|
1366
1348
|
}
|
|
1367
1349
|
|
|
1368
1350
|
var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
1369
1351
|
_inheritsLoose(SuspenseSubject, _Subject);
|
|
1370
1352
|
|
|
1371
|
-
// @ts-
|
|
1372
|
-
// @ts-
|
|
1353
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1354
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1373
1355
|
function SuspenseSubject(innerObservable, _timeoutWindow) {
|
|
1374
1356
|
var _this;
|
|
1375
1357
|
|
|
@@ -1460,6 +1442,8 @@ var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
|
1460
1442
|
// As it is now, this will burn the cache entry until the timeout fires.
|
|
1461
1443
|
if (this._error) {
|
|
1462
1444
|
throw this._error;
|
|
1445
|
+
} else if (!this.hasValue) {
|
|
1446
|
+
throw Error('Can only get value if SuspenseSubject has a value');
|
|
1463
1447
|
}
|
|
1464
1448
|
|
|
1465
1449
|
return this._value;
|
|
@@ -1499,6 +1483,39 @@ function preloadObservable(source, id) {
|
|
|
1499
1483
|
return observable;
|
|
1500
1484
|
}
|
|
1501
1485
|
}
|
|
1486
|
+
|
|
1487
|
+
function reducerFactory(observable) {
|
|
1488
|
+
return function reducer(state, action) {
|
|
1489
|
+
// always make sure these values are in sync with the observable
|
|
1490
|
+
var newState = _extends({}, state, {
|
|
1491
|
+
hasEmitted: state.hasEmitted || observable.hasValue,
|
|
1492
|
+
error: observable.ourError,
|
|
1493
|
+
firstValuePromise: observable.firstEmission
|
|
1494
|
+
});
|
|
1495
|
+
|
|
1496
|
+
if (observable.hasValue) {
|
|
1497
|
+
newState.data = observable.value;
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1500
|
+
switch (action) {
|
|
1501
|
+
case 'value':
|
|
1502
|
+
newState.status = 'success';
|
|
1503
|
+
return newState;
|
|
1504
|
+
|
|
1505
|
+
case 'error':
|
|
1506
|
+
newState.status = 'error';
|
|
1507
|
+
return newState;
|
|
1508
|
+
|
|
1509
|
+
case 'complete':
|
|
1510
|
+
newState.isComplete = true;
|
|
1511
|
+
return newState;
|
|
1512
|
+
|
|
1513
|
+
default:
|
|
1514
|
+
throw new Error("invalid action \"" + action + "\"");
|
|
1515
|
+
}
|
|
1516
|
+
};
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1502
1519
|
function useObservable(observableId, source, config) {
|
|
1503
1520
|
var _config$initialData, _config, _config2;
|
|
1504
1521
|
|
|
@@ -1506,71 +1523,52 @@ function useObservable(observableId, source, config) {
|
|
|
1506
1523
|
config = {};
|
|
1507
1524
|
}
|
|
1508
1525
|
|
|
1526
|
+
// Register the observable with the cache
|
|
1509
1527
|
if (!observableId) {
|
|
1510
1528
|
throw new Error('cannot call useObservable without an observableId');
|
|
1511
1529
|
}
|
|
1512
1530
|
|
|
1513
|
-
var observable = preloadObservable(source, observableId);
|
|
1531
|
+
var observable = preloadObservable(source, observableId); // Suspend if suspense is enabled and no initial data exists
|
|
1532
|
+
|
|
1514
1533
|
var hasInitialData = config.hasOwnProperty('initialData') || config.hasOwnProperty('startWithValue');
|
|
1534
|
+
var hasData = observable.hasValue || hasInitialData;
|
|
1515
1535
|
var suspenseEnabled = useSuspenseEnabledFromConfigAndContext(config.suspense);
|
|
1516
1536
|
|
|
1517
|
-
if (suspenseEnabled === true && !
|
|
1537
|
+
if (suspenseEnabled === true && !hasData) {
|
|
1518
1538
|
throw observable.firstEmission;
|
|
1519
1539
|
}
|
|
1520
1540
|
|
|
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];
|
|
1541
|
+
var initialState = {
|
|
1542
|
+
status: hasData ? 'success' : 'loading',
|
|
1543
|
+
hasEmitted: hasData,
|
|
1544
|
+
isComplete: false,
|
|
1545
|
+
data: observable.hasValue ? observable.value : (_config$initialData = (_config = config) == null ? void 0 : _config.initialData) != null ? _config$initialData : (_config2 = config) == null ? void 0 : _config2.startWithValue,
|
|
1546
|
+
error: observable.ourError,
|
|
1547
|
+
firstValuePromise: observable.firstEmission
|
|
1548
|
+
};
|
|
1532
1549
|
|
|
1533
|
-
var _React$
|
|
1534
|
-
|
|
1535
|
-
|
|
1550
|
+
var _React$useReducer = React.useReducer(reducerFactory(observable), initialState),
|
|
1551
|
+
status = _React$useReducer[0],
|
|
1552
|
+
dispatch = _React$useReducer[1];
|
|
1536
1553
|
|
|
1537
1554
|
React.useEffect(function () {
|
|
1538
1555
|
var subscription = observable.subscribe({
|
|
1539
|
-
next: function next(
|
|
1540
|
-
|
|
1541
|
-
return v;
|
|
1542
|
-
});
|
|
1556
|
+
next: function next() {
|
|
1557
|
+
dispatch('value');
|
|
1543
1558
|
},
|
|
1544
1559
|
error: function error(e) {
|
|
1545
|
-
|
|
1560
|
+
dispatch('error');
|
|
1546
1561
|
throw e;
|
|
1547
1562
|
},
|
|
1548
1563
|
complete: function complete() {
|
|
1549
|
-
|
|
1564
|
+
dispatch('complete');
|
|
1550
1565
|
}
|
|
1551
1566
|
});
|
|
1552
1567
|
return function () {
|
|
1553
1568
|
return subscription.unsubscribe();
|
|
1554
1569
|
};
|
|
1555
1570
|
}, [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
|
-
};
|
|
1571
|
+
return status;
|
|
1574
1572
|
}
|
|
1575
1573
|
|
|
1576
1574
|
var cachedQueries$1 = globalThis._reactFireFirestoreQueryCache || [];
|
|
@@ -1656,7 +1654,9 @@ function useFirestoreDocOnce(ref, options) {
|
|
|
1656
1654
|
function useFirestoreDocData(ref, options) {
|
|
1657
1655
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1658
1656
|
var observableId = "firestore:docData:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1659
|
-
var observable = firestore.docData(ref,
|
|
1657
|
+
var observable = firestore.docData(ref, {
|
|
1658
|
+
idField: idField
|
|
1659
|
+
});
|
|
1660
1660
|
return useObservable(observableId, observable, options);
|
|
1661
1661
|
}
|
|
1662
1662
|
/**
|
|
@@ -1666,7 +1666,9 @@ function useFirestoreDocData(ref, options) {
|
|
|
1666
1666
|
function useFirestoreDocDataOnce(ref, options) {
|
|
1667
1667
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1668
1668
|
var observableId = "firestore:docDataOnce:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1669
|
-
var observable$ = firestore.docData(ref,
|
|
1669
|
+
var observable$ = firestore.docData(ref, {
|
|
1670
|
+
idField: idField
|
|
1671
|
+
}).pipe(operators.first());
|
|
1670
1672
|
return useObservable(observableId, observable$, options);
|
|
1671
1673
|
}
|
|
1672
1674
|
/**
|
|
@@ -1685,7 +1687,24 @@ function useFirestoreCollection(query, options) {
|
|
|
1685
1687
|
function useFirestoreCollectionData(query, options) {
|
|
1686
1688
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1687
1689
|
var observableId = "firestore:collectionData:" + getUniqueIdForFirestoreQuery(query) + ":idField=" + idField;
|
|
1688
|
-
var observable$ = firestore.collectionData(query,
|
|
1690
|
+
var observable$ = firestore.collectionData(query, {
|
|
1691
|
+
idField: idField
|
|
1692
|
+
});
|
|
1693
|
+
return useObservable(observableId, observable$, options);
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
/**
|
|
1697
|
+
* Calls a callable function.
|
|
1698
|
+
*
|
|
1699
|
+
* @param functionName - The name of the function to call
|
|
1700
|
+
* @param options
|
|
1701
|
+
*/
|
|
1702
|
+
|
|
1703
|
+
function useCallableFunctionResponse(functionName, options) {
|
|
1704
|
+
var functions$1 = useFunctions();
|
|
1705
|
+
var observableId = "functions:callableResponse:" + functionName + ":" + JSON.stringify(options == null ? void 0 : options.data) + ":" + JSON.stringify(options == null ? void 0 : options.httpsCallableOptions);
|
|
1706
|
+
var obsFactory = functions.httpsCallable(functions$1, functionName, options == null ? void 0 : options.httpsCallableOptions);
|
|
1707
|
+
var observable$ = obsFactory(options == null ? void 0 : options.data);
|
|
1689
1708
|
return useObservable(observableId, observable$, options);
|
|
1690
1709
|
}
|
|
1691
1710
|
|
|
@@ -1720,76 +1739,6 @@ function SuspenseWithPerf(_ref) {
|
|
|
1720
1739
|
}, children);
|
|
1721
1740
|
}
|
|
1722
1741
|
|
|
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
1742
|
/**
|
|
1794
1743
|
* Helper function to construct type safe functions. Since Remote Config has
|
|
1795
1744
|
* methods that return different types for values, we need to be extra safe
|
|
@@ -1800,12 +1749,8 @@ function getAll(remoteConfig$1) {
|
|
|
1800
1749
|
*/
|
|
1801
1750
|
|
|
1802
1751
|
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;
|
|
1752
|
+
var remoteConfig = useRemoteConfig();
|
|
1753
|
+
var appName = remoteConfig.app.name;
|
|
1809
1754
|
var $value = getter(remoteConfig, key);
|
|
1810
1755
|
var observableId = "remoteConfig:" + key + ":" + getter.name + ":" + appName;
|
|
1811
1756
|
return useObservable(observableId, $value);
|
|
@@ -1815,75 +1760,46 @@ function useRemoteConfigValue_INTERNAL(key, getter) {
|
|
|
1815
1760
|
* Remote Config Value.
|
|
1816
1761
|
*
|
|
1817
1762
|
* @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
1763
|
*/
|
|
1820
1764
|
|
|
1821
1765
|
|
|
1822
1766
|
function useRemoteConfigValue(key) {
|
|
1823
|
-
return useRemoteConfigValue_INTERNAL(key, getValue);
|
|
1767
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getValue);
|
|
1824
1768
|
}
|
|
1825
1769
|
/**
|
|
1826
1770
|
* Convience method similar to useRemoteConfigValue. Returns a `string` from a Remote Config parameter.
|
|
1827
1771
|
* @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
1772
|
*/
|
|
1830
1773
|
|
|
1831
1774
|
function useRemoteConfigString(key) {
|
|
1832
|
-
return useRemoteConfigValue_INTERNAL(key, getString);
|
|
1775
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getString);
|
|
1833
1776
|
}
|
|
1834
1777
|
/**
|
|
1835
1778
|
* Convience method similar to useRemoteConfigValue. Returns a `number` from a Remote Config parameter.
|
|
1836
1779
|
* @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
1780
|
*/
|
|
1839
1781
|
|
|
1840
1782
|
function useRemoteConfigNumber(key) {
|
|
1841
|
-
return useRemoteConfigValue_INTERNAL(key, getNumber);
|
|
1783
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getNumber);
|
|
1842
1784
|
}
|
|
1843
1785
|
/**
|
|
1844
1786
|
* Convience method similar to useRemoteConfigValue. Returns a `boolean` from a Remote Config parameter.
|
|
1845
1787
|
* @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
1788
|
*/
|
|
1848
1789
|
|
|
1849
1790
|
function useRemoteConfigBoolean(key) {
|
|
1850
|
-
return useRemoteConfigValue_INTERNAL(key, getBoolean);
|
|
1791
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getBoolean);
|
|
1851
1792
|
}
|
|
1852
1793
|
/**
|
|
1853
1794
|
* Convience method similar to useRemoteConfigValue. Returns allRemote Config parameters.
|
|
1854
1795
|
* @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
1796
|
*/
|
|
1857
1797
|
|
|
1858
1798
|
function useRemoteConfigAll(key) {
|
|
1859
|
-
return useRemoteConfigValue_INTERNAL(key, getAll);
|
|
1799
|
+
return useRemoteConfigValue_INTERNAL(key, remoteConfig.getAll);
|
|
1860
1800
|
}
|
|
1861
1801
|
|
|
1862
1802
|
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
1803
|
/**
|
|
1888
1804
|
* Subscribe to the progress of a storage task
|
|
1889
1805
|
*
|
|
@@ -1892,12 +1808,9 @@ function _fromTask(task) {
|
|
|
1892
1808
|
* @param options
|
|
1893
1809
|
*/
|
|
1894
1810
|
|
|
1895
|
-
|
|
1896
1811
|
function useStorageTask(task, ref, options) {
|
|
1897
1812
|
var observableId = "storage:task:" + ref.toString();
|
|
1898
|
-
|
|
1899
|
-
var observable$ = _fromTask(task);
|
|
1900
|
-
|
|
1813
|
+
var observable$ = storage.fromTask(task);
|
|
1901
1814
|
return useObservable(observableId, observable$, options);
|
|
1902
1815
|
}
|
|
1903
1816
|
/**
|
|
@@ -1964,34 +1877,24 @@ function StorageImage(props) {
|
|
|
1964
1877
|
}
|
|
1965
1878
|
}
|
|
1966
1879
|
|
|
1880
|
+
var AppCheckSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1967
1881
|
var AuthSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1882
|
+
var AnalyticsSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1968
1883
|
var DatabaseSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1969
1884
|
var FirestoreSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1885
|
+
var FunctionsSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1970
1886
|
var StorageSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1971
1887
|
var PerformanceSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1972
1888
|
var RemoteConfigSdkContext = /*#__PURE__*/React.createContext(undefined);
|
|
1973
1889
|
|
|
1974
1890
|
function getSdkProvider(SdkContext) {
|
|
1975
1891
|
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
|
-
}
|
|
1892
|
+
var _props$sdk, _props$sdk$app;
|
|
1994
1893
|
|
|
1894
|
+
if (!props.sdk) throw new Error('no sdk provided');
|
|
1895
|
+
var contextualAppName = useFirebaseApp().name;
|
|
1896
|
+
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;
|
|
1897
|
+
if (sdkAppName !== contextualAppName) throw new Error('sdk was initialized with a different firebase app');
|
|
1995
1898
|
return React.createElement(SdkContext.Provider, _extends({
|
|
1996
1899
|
value: props.sdk
|
|
1997
1900
|
}, props));
|
|
@@ -2023,21 +1926,33 @@ function useInitSdk(sdkName, SdkContext, sdkInitializer, options) {
|
|
|
2023
1926
|
return useObservable("firebase-sdk:" + sdkName + ":" + firebaseApp.name, rxjs.from(initializeSdk), options);
|
|
2024
1927
|
}
|
|
2025
1928
|
|
|
1929
|
+
var AppCheckProvider = /*#__PURE__*/getSdkProvider(AppCheckSdkContext);
|
|
2026
1930
|
var AuthProvider = /*#__PURE__*/getSdkProvider(AuthSdkContext);
|
|
1931
|
+
var AnalyticsProvider = /*#__PURE__*/getSdkProvider(AnalyticsSdkContext);
|
|
2027
1932
|
var DatabaseProvider = /*#__PURE__*/getSdkProvider(DatabaseSdkContext);
|
|
2028
1933
|
var FirestoreProvider = /*#__PURE__*/getSdkProvider(FirestoreSdkContext);
|
|
1934
|
+
var FunctionsProvider = /*#__PURE__*/getSdkProvider(FunctionsSdkContext);
|
|
2029
1935
|
var PerformanceProvider = /*#__PURE__*/getSdkProvider(PerformanceSdkContext);
|
|
2030
1936
|
var StorageProvider = /*#__PURE__*/getSdkProvider(StorageSdkContext);
|
|
2031
1937
|
var RemoteConfigProvider = /*#__PURE__*/getSdkProvider(RemoteConfigSdkContext);
|
|
1938
|
+
var useAppCheck = function useAppCheck() {
|
|
1939
|
+
return useSdk(AppCheckSdkContext);
|
|
1940
|
+
};
|
|
2032
1941
|
var useAuth = function useAuth() {
|
|
2033
1942
|
return useSdk(AuthSdkContext);
|
|
2034
1943
|
};
|
|
1944
|
+
var useAnalytics = function useAnalytics() {
|
|
1945
|
+
return useSdk(AnalyticsSdkContext);
|
|
1946
|
+
};
|
|
2035
1947
|
var useDatabase = function useDatabase() {
|
|
2036
1948
|
return useSdk(DatabaseSdkContext);
|
|
2037
1949
|
};
|
|
2038
1950
|
var useFirestore = function useFirestore() {
|
|
2039
1951
|
return useSdk(FirestoreSdkContext);
|
|
2040
1952
|
};
|
|
1953
|
+
var useFunctions = function useFunctions() {
|
|
1954
|
+
return useSdk(FunctionsSdkContext);
|
|
1955
|
+
};
|
|
2041
1956
|
var usePerformance = function usePerformance() {
|
|
2042
1957
|
return useSdk(PerformanceSdkContext);
|
|
2043
1958
|
};
|
|
@@ -2047,15 +1962,24 @@ var useStorage = function useStorage() {
|
|
|
2047
1962
|
var useRemoteConfig = function useRemoteConfig() {
|
|
2048
1963
|
return useSdk(RemoteConfigSdkContext);
|
|
2049
1964
|
};
|
|
1965
|
+
var useInitAppCheck = function useInitAppCheck(initializer, options) {
|
|
1966
|
+
return useInitSdk('appcheck', AppCheckSdkContext, initializer, options);
|
|
1967
|
+
};
|
|
2050
1968
|
var useInitAuth = function useInitAuth(initializer, options) {
|
|
2051
1969
|
return useInitSdk('auth', AuthSdkContext, initializer, options);
|
|
2052
1970
|
};
|
|
1971
|
+
var useInitAnalytics = function useInitAnalytics(initializer, options) {
|
|
1972
|
+
return useInitSdk('analytics', AnalyticsSdkContext, initializer, options);
|
|
1973
|
+
};
|
|
2053
1974
|
var useInitDatabase = function useInitDatabase(initializer, options) {
|
|
2054
1975
|
return useInitSdk('database', DatabaseSdkContext, initializer, options);
|
|
2055
1976
|
};
|
|
2056
1977
|
var useInitFirestore = function useInitFirestore(initializer, options) {
|
|
2057
1978
|
return useInitSdk('firestore', FirestoreSdkContext, initializer, options);
|
|
2058
1979
|
};
|
|
1980
|
+
var useInitFunctions = function useInitFunctions(initializer, options) {
|
|
1981
|
+
return useInitSdk('functions', FunctionsSdkContext, initializer, options);
|
|
1982
|
+
};
|
|
2059
1983
|
var useInitPerformance = function useInitPerformance(initializer, options) {
|
|
2060
1984
|
return useInitSdk('performance', PerformanceSdkContext, initializer, options);
|
|
2061
1985
|
};
|
|
@@ -2101,17 +2025,29 @@ function checkIdField(options) {
|
|
|
2101
2025
|
return checkOptions(options, 'idField');
|
|
2102
2026
|
}
|
|
2103
2027
|
|
|
2028
|
+
exports.AnalyticsProvider = AnalyticsProvider;
|
|
2029
|
+
exports.AnalyticsSdkContext = AnalyticsSdkContext;
|
|
2030
|
+
exports.AppCheckProvider = AppCheckProvider;
|
|
2031
|
+
exports.AppCheckSdkContext = AppCheckSdkContext;
|
|
2104
2032
|
exports.AuthCheck = AuthCheck;
|
|
2105
2033
|
exports.AuthProvider = AuthProvider;
|
|
2034
|
+
exports.AuthSdkContext = AuthSdkContext;
|
|
2106
2035
|
exports.ClaimsCheck = ClaimsCheck;
|
|
2107
2036
|
exports.DatabaseProvider = DatabaseProvider;
|
|
2037
|
+
exports.DatabaseSdkContext = DatabaseSdkContext;
|
|
2108
2038
|
exports.FirebaseAppProvider = FirebaseAppProvider;
|
|
2109
2039
|
exports.FirestoreProvider = FirestoreProvider;
|
|
2040
|
+
exports.FirestoreSdkContext = FirestoreSdkContext;
|
|
2041
|
+
exports.FunctionsProvider = FunctionsProvider;
|
|
2042
|
+
exports.FunctionsSdkContext = FunctionsSdkContext;
|
|
2110
2043
|
exports.PerformanceProvider = PerformanceProvider;
|
|
2044
|
+
exports.PerformanceSdkContext = PerformanceSdkContext;
|
|
2111
2045
|
exports.ReactFireError = ReactFireError;
|
|
2112
2046
|
exports.RemoteConfigProvider = RemoteConfigProvider;
|
|
2047
|
+
exports.RemoteConfigSdkContext = RemoteConfigSdkContext;
|
|
2113
2048
|
exports.StorageImage = StorageImage;
|
|
2114
2049
|
exports.StorageProvider = StorageProvider;
|
|
2050
|
+
exports.StorageSdkContext = StorageSdkContext;
|
|
2115
2051
|
exports.SuspenseWithPerf = SuspenseWithPerf;
|
|
2116
2052
|
exports.checkIdField = checkIdField;
|
|
2117
2053
|
exports.checkOptions = checkOptions;
|
|
@@ -2119,7 +2055,10 @@ exports.checkinitialData = checkinitialData;
|
|
|
2119
2055
|
exports.preloadFirestoreDoc = preloadFirestoreDoc;
|
|
2120
2056
|
exports.preloadObservable = preloadObservable;
|
|
2121
2057
|
exports.preloadUser = preloadUser;
|
|
2058
|
+
exports.useAnalytics = useAnalytics;
|
|
2059
|
+
exports.useAppCheck = useAppCheck;
|
|
2122
2060
|
exports.useAuth = useAuth;
|
|
2061
|
+
exports.useCallableFunctionResponse = useCallableFunctionResponse;
|
|
2123
2062
|
exports.useDatabase = useDatabase;
|
|
2124
2063
|
exports.useDatabaseList = useDatabaseList;
|
|
2125
2064
|
exports.useDatabaseListData = useDatabaseListData;
|
|
@@ -2133,10 +2072,14 @@ exports.useFirestoreDoc = useFirestoreDoc;
|
|
|
2133
2072
|
exports.useFirestoreDocData = useFirestoreDocData;
|
|
2134
2073
|
exports.useFirestoreDocDataOnce = useFirestoreDocDataOnce;
|
|
2135
2074
|
exports.useFirestoreDocOnce = useFirestoreDocOnce;
|
|
2075
|
+
exports.useFunctions = useFunctions;
|
|
2136
2076
|
exports.useIdTokenResult = useIdTokenResult;
|
|
2077
|
+
exports.useInitAnalytics = useInitAnalytics;
|
|
2078
|
+
exports.useInitAppCheck = useInitAppCheck;
|
|
2137
2079
|
exports.useInitAuth = useInitAuth;
|
|
2138
2080
|
exports.useInitDatabase = useInitDatabase;
|
|
2139
2081
|
exports.useInitFirestore = useInitFirestore;
|
|
2082
|
+
exports.useInitFunctions = useInitFunctions;
|
|
2140
2083
|
exports.useInitPerformance = useInitPerformance;
|
|
2141
2084
|
exports.useInitRemoteConfig = useInitRemoteConfig;
|
|
2142
2085
|
exports.useInitStorage = useInitStorage;
|