reactfire 4.0.0-exp.e80fc49 → 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 +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 +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
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.eb1428b";
|
|
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) {
|
|
@@ -1061,22 +1062,21 @@ function _preloadUser() {
|
|
|
1061
1062
|
}
|
|
1062
1063
|
|
|
1063
1064
|
function useUser(options) {
|
|
1064
|
-
var
|
|
1065
|
+
var _options2;
|
|
1065
1066
|
|
|
1066
1067
|
var auth = useAuth();
|
|
1067
1068
|
var observableId = "auth:user:" + auth.name;
|
|
1068
1069
|
var observable$ = user(auth);
|
|
1069
|
-
var currentUser = auth.currentUser; // Only use options.initialData if auth.currentUser is unavailable
|
|
1070
1070
|
|
|
1071
|
-
|
|
1072
|
-
var _options$initialData2;
|
|
1071
|
+
var _options = (_options2 = _extends({}, options)) != null ? _options2 : {}; // only set/override initialData if auth has finished loading
|
|
1073
1072
|
|
|
1074
|
-
|
|
1073
|
+
|
|
1074
|
+
if (auth.currentUser !== undefined) {
|
|
1075
|
+
_options.initialData = auth.currentUser;
|
|
1076
|
+
_options.startWithValue = auth.currentUser;
|
|
1075
1077
|
}
|
|
1076
1078
|
|
|
1077
|
-
return useObservable(observableId, observable$,
|
|
1078
|
-
initialData: currentUser
|
|
1079
|
-
}));
|
|
1079
|
+
return useObservable(observableId, observable$, _options);
|
|
1080
1080
|
}
|
|
1081
1081
|
function useIdTokenResult(user, forceRefresh, options) {
|
|
1082
1082
|
if (forceRefresh === void 0) {
|
|
@@ -1313,33 +1313,13 @@ function useDatabaseObject(ref, options) {
|
|
|
1313
1313
|
var observableId = "database:object:" + ref.toString();
|
|
1314
1314
|
var observable$ = object(ref);
|
|
1315
1315
|
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
1316
|
}
|
|
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
1317
|
function useDatabaseObjectData(ref, options) {
|
|
1340
1318
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1341
1319
|
var observableId = "database:objectVal:" + ref.toString() + ":idField=" + idField;
|
|
1342
|
-
var observable$ = objectVal(ref,
|
|
1320
|
+
var observable$ = objectVal(ref, {
|
|
1321
|
+
keyField: idField
|
|
1322
|
+
});
|
|
1343
1323
|
return useObservable(observableId, observable$, options);
|
|
1344
1324
|
}
|
|
1345
1325
|
/**
|
|
@@ -1357,15 +1337,17 @@ function useDatabaseList(ref, options) {
|
|
|
1357
1337
|
function useDatabaseListData(ref, options) {
|
|
1358
1338
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1359
1339
|
var observableId = "database:listVal:" + getUniqueIdForDatabaseQuery(ref) + ":idField=" + idField;
|
|
1360
|
-
var observable$ = listVal(ref,
|
|
1340
|
+
var observable$ = listVal(ref, {
|
|
1341
|
+
keyField: idField
|
|
1342
|
+
});
|
|
1361
1343
|
return useObservable(observableId, observable$, options);
|
|
1362
1344
|
}
|
|
1363
1345
|
|
|
1364
1346
|
var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
1365
1347
|
_inheritsLoose(SuspenseSubject, _Subject);
|
|
1366
1348
|
|
|
1367
|
-
// @ts-
|
|
1368
|
-
// @ts-
|
|
1349
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1350
|
+
// @ts-expect-error: TODO: double check to see if this is an RXJS thing or if we should listen to TS
|
|
1369
1351
|
function SuspenseSubject(innerObservable, _timeoutWindow) {
|
|
1370
1352
|
var _this;
|
|
1371
1353
|
|
|
@@ -1456,6 +1438,8 @@ var SuspenseSubject = /*#__PURE__*/function (_Subject) {
|
|
|
1456
1438
|
// As it is now, this will burn the cache entry until the timeout fires.
|
|
1457
1439
|
if (this._error) {
|
|
1458
1440
|
throw this._error;
|
|
1441
|
+
} else if (!this.hasValue) {
|
|
1442
|
+
throw Error('Can only get value if SuspenseSubject has a value');
|
|
1459
1443
|
}
|
|
1460
1444
|
|
|
1461
1445
|
return this._value;
|
|
@@ -1495,6 +1479,39 @@ function preloadObservable(source, id) {
|
|
|
1495
1479
|
return observable;
|
|
1496
1480
|
}
|
|
1497
1481
|
}
|
|
1482
|
+
|
|
1483
|
+
function reducerFactory(observable) {
|
|
1484
|
+
return function reducer(state, action) {
|
|
1485
|
+
// always make sure these values are in sync with the observable
|
|
1486
|
+
var newState = _extends({}, state, {
|
|
1487
|
+
hasEmitted: state.hasEmitted || observable.hasValue,
|
|
1488
|
+
error: observable.ourError,
|
|
1489
|
+
firstValuePromise: observable.firstEmission
|
|
1490
|
+
});
|
|
1491
|
+
|
|
1492
|
+
if (observable.hasValue) {
|
|
1493
|
+
newState.data = observable.value;
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
switch (action) {
|
|
1497
|
+
case 'value':
|
|
1498
|
+
newState.status = 'success';
|
|
1499
|
+
return newState;
|
|
1500
|
+
|
|
1501
|
+
case 'error':
|
|
1502
|
+
newState.status = 'error';
|
|
1503
|
+
return newState;
|
|
1504
|
+
|
|
1505
|
+
case 'complete':
|
|
1506
|
+
newState.isComplete = true;
|
|
1507
|
+
return newState;
|
|
1508
|
+
|
|
1509
|
+
default:
|
|
1510
|
+
throw new Error("invalid action \"" + action + "\"");
|
|
1511
|
+
}
|
|
1512
|
+
};
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1498
1515
|
function useObservable(observableId, source, config) {
|
|
1499
1516
|
var _config$initialData, _config, _config2;
|
|
1500
1517
|
|
|
@@ -1502,71 +1519,52 @@ function useObservable(observableId, source, config) {
|
|
|
1502
1519
|
config = {};
|
|
1503
1520
|
}
|
|
1504
1521
|
|
|
1522
|
+
// Register the observable with the cache
|
|
1505
1523
|
if (!observableId) {
|
|
1506
1524
|
throw new Error('cannot call useObservable without an observableId');
|
|
1507
1525
|
}
|
|
1508
1526
|
|
|
1509
|
-
var observable = preloadObservable(source, observableId);
|
|
1527
|
+
var observable = preloadObservable(source, observableId); // Suspend if suspense is enabled and no initial data exists
|
|
1528
|
+
|
|
1510
1529
|
var hasInitialData = config.hasOwnProperty('initialData') || config.hasOwnProperty('startWithValue');
|
|
1530
|
+
var hasData = observable.hasValue || hasInitialData;
|
|
1511
1531
|
var suspenseEnabled = useSuspenseEnabledFromConfigAndContext(config.suspense);
|
|
1512
1532
|
|
|
1513
|
-
if (suspenseEnabled === true && !
|
|
1533
|
+
if (suspenseEnabled === true && !hasData) {
|
|
1514
1534
|
throw observable.firstEmission;
|
|
1515
1535
|
}
|
|
1516
1536
|
|
|
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];
|
|
1537
|
+
var initialState = {
|
|
1538
|
+
status: hasData ? 'success' : 'loading',
|
|
1539
|
+
hasEmitted: hasData,
|
|
1540
|
+
isComplete: false,
|
|
1541
|
+
data: observable.hasValue ? observable.value : (_config$initialData = (_config = config) == null ? void 0 : _config.initialData) != null ? _config$initialData : (_config2 = config) == null ? void 0 : _config2.startWithValue,
|
|
1542
|
+
error: observable.ourError,
|
|
1543
|
+
firstValuePromise: observable.firstEmission
|
|
1544
|
+
};
|
|
1528
1545
|
|
|
1529
|
-
var _React$
|
|
1530
|
-
|
|
1531
|
-
|
|
1546
|
+
var _React$useReducer = useReducer(reducerFactory(observable), initialState),
|
|
1547
|
+
status = _React$useReducer[0],
|
|
1548
|
+
dispatch = _React$useReducer[1];
|
|
1532
1549
|
|
|
1533
1550
|
useEffect(function () {
|
|
1534
1551
|
var subscription = observable.subscribe({
|
|
1535
|
-
next: function next(
|
|
1536
|
-
|
|
1537
|
-
return v;
|
|
1538
|
-
});
|
|
1552
|
+
next: function next() {
|
|
1553
|
+
dispatch('value');
|
|
1539
1554
|
},
|
|
1540
1555
|
error: function error(e) {
|
|
1541
|
-
|
|
1556
|
+
dispatch('error');
|
|
1542
1557
|
throw e;
|
|
1543
1558
|
},
|
|
1544
1559
|
complete: function complete() {
|
|
1545
|
-
|
|
1560
|
+
dispatch('complete');
|
|
1546
1561
|
}
|
|
1547
1562
|
});
|
|
1548
1563
|
return function () {
|
|
1549
1564
|
return subscription.unsubscribe();
|
|
1550
1565
|
};
|
|
1551
1566
|
}, [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
|
-
};
|
|
1567
|
+
return status;
|
|
1570
1568
|
}
|
|
1571
1569
|
|
|
1572
1570
|
var cachedQueries$1 = globalThis._reactFireFirestoreQueryCache || [];
|
|
@@ -1652,7 +1650,9 @@ function useFirestoreDocOnce(ref, options) {
|
|
|
1652
1650
|
function useFirestoreDocData(ref, options) {
|
|
1653
1651
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1654
1652
|
var observableId = "firestore:docData:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1655
|
-
var observable = docData(ref,
|
|
1653
|
+
var observable = docData(ref, {
|
|
1654
|
+
idField: idField
|
|
1655
|
+
});
|
|
1656
1656
|
return useObservable(observableId, observable, options);
|
|
1657
1657
|
}
|
|
1658
1658
|
/**
|
|
@@ -1662,7 +1662,9 @@ function useFirestoreDocData(ref, options) {
|
|
|
1662
1662
|
function useFirestoreDocDataOnce(ref, options) {
|
|
1663
1663
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1664
1664
|
var observableId = "firestore:docDataOnce:" + ref.firestore.app.name + ":" + ref.path + ":idField=" + idField;
|
|
1665
|
-
var observable$ = docData(ref,
|
|
1665
|
+
var observable$ = docData(ref, {
|
|
1666
|
+
idField: idField
|
|
1667
|
+
}).pipe(first());
|
|
1666
1668
|
return useObservable(observableId, observable$, options);
|
|
1667
1669
|
}
|
|
1668
1670
|
/**
|
|
@@ -1681,7 +1683,24 @@ function useFirestoreCollection(query, options) {
|
|
|
1681
1683
|
function useFirestoreCollectionData(query, options) {
|
|
1682
1684
|
var idField = options ? checkIdField(options) : 'NO_ID_FIELD';
|
|
1683
1685
|
var observableId = "firestore:collectionData:" + getUniqueIdForFirestoreQuery(query) + ":idField=" + idField;
|
|
1684
|
-
var observable$ = collectionData(query,
|
|
1686
|
+
var observable$ = collectionData(query, {
|
|
1687
|
+
idField: idField
|
|
1688
|
+
});
|
|
1689
|
+
return useObservable(observableId, observable$, options);
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
/**
|
|
1693
|
+
* Calls a callable function.
|
|
1694
|
+
*
|
|
1695
|
+
* @param functionName - The name of the function to call
|
|
1696
|
+
* @param options
|
|
1697
|
+
*/
|
|
1698
|
+
|
|
1699
|
+
function useCallableFunctionResponse(functionName, options) {
|
|
1700
|
+
var functions = useFunctions();
|
|
1701
|
+
var observableId = "functions:callableResponse:" + functionName + ":" + JSON.stringify(options == null ? void 0 : options.data) + ":" + JSON.stringify(options == null ? void 0 : options.httpsCallableOptions);
|
|
1702
|
+
var obsFactory = httpsCallable(functions, functionName, options == null ? void 0 : options.httpsCallableOptions);
|
|
1703
|
+
var observable$ = obsFactory(options == null ? void 0 : options.data);
|
|
1685
1704
|
return useObservable(observableId, observable$, options);
|
|
1686
1705
|
}
|
|
1687
1706
|
|
|
@@ -1716,76 +1735,6 @@ function SuspenseWithPerf(_ref) {
|
|
|
1716
1735
|
}, children);
|
|
1717
1736
|
}
|
|
1718
1737
|
|
|
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
1738
|
/**
|
|
1790
1739
|
* Helper function to construct type safe functions. Since Remote Config has
|
|
1791
1740
|
* methods that return different types for values, we need to be extra safe
|
|
@@ -1796,12 +1745,8 @@ function getAll(remoteConfig) {
|
|
|
1796
1745
|
*/
|
|
1797
1746
|
|
|
1798
1747
|
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;
|
|
1748
|
+
var remoteConfig = useRemoteConfig();
|
|
1749
|
+
var appName = remoteConfig.app.name;
|
|
1805
1750
|
var $value = getter(remoteConfig, key);
|
|
1806
1751
|
var observableId = "remoteConfig:" + key + ":" + getter.name + ":" + appName;
|
|
1807
1752
|
return useObservable(observableId, $value);
|
|
@@ -1811,7 +1756,6 @@ function useRemoteConfigValue_INTERNAL(key, getter) {
|
|
|
1811
1756
|
* Remote Config Value.
|
|
1812
1757
|
*
|
|
1813
1758
|
* @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
1759
|
*/
|
|
1816
1760
|
|
|
1817
1761
|
|
|
@@ -1821,7 +1765,6 @@ function useRemoteConfigValue(key) {
|
|
|
1821
1765
|
/**
|
|
1822
1766
|
* Convience method similar to useRemoteConfigValue. Returns a `string` from a Remote Config parameter.
|
|
1823
1767
|
* @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
1768
|
*/
|
|
1826
1769
|
|
|
1827
1770
|
function useRemoteConfigString(key) {
|
|
@@ -1830,7 +1773,6 @@ function useRemoteConfigString(key) {
|
|
|
1830
1773
|
/**
|
|
1831
1774
|
* Convience method similar to useRemoteConfigValue. Returns a `number` from a Remote Config parameter.
|
|
1832
1775
|
* @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
1776
|
*/
|
|
1835
1777
|
|
|
1836
1778
|
function useRemoteConfigNumber(key) {
|
|
@@ -1839,7 +1781,6 @@ function useRemoteConfigNumber(key) {
|
|
|
1839
1781
|
/**
|
|
1840
1782
|
* Convience method similar to useRemoteConfigValue. Returns a `boolean` from a Remote Config parameter.
|
|
1841
1783
|
* @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
1784
|
*/
|
|
1844
1785
|
|
|
1845
1786
|
function useRemoteConfigBoolean(key) {
|
|
@@ -1848,7 +1789,6 @@ function useRemoteConfigBoolean(key) {
|
|
|
1848
1789
|
/**
|
|
1849
1790
|
* Convience method similar to useRemoteConfigValue. Returns allRemote Config parameters.
|
|
1850
1791
|
* @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
1792
|
*/
|
|
1853
1793
|
|
|
1854
1794
|
function useRemoteConfigAll(key) {
|
|
@@ -1856,30 +1796,6 @@ function useRemoteConfigAll(key) {
|
|
|
1856
1796
|
}
|
|
1857
1797
|
|
|
1858
1798
|
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
1799
|
/**
|
|
1884
1800
|
* Subscribe to the progress of a storage task
|
|
1885
1801
|
*
|
|
@@ -1888,12 +1804,9 @@ function _fromTask(task) {
|
|
|
1888
1804
|
* @param options
|
|
1889
1805
|
*/
|
|
1890
1806
|
|
|
1891
|
-
|
|
1892
1807
|
function useStorageTask(task, ref, options) {
|
|
1893
1808
|
var observableId = "storage:task:" + ref.toString();
|
|
1894
|
-
|
|
1895
|
-
var observable$ = _fromTask(task);
|
|
1896
|
-
|
|
1809
|
+
var observable$ = fromTask(task);
|
|
1897
1810
|
return useObservable(observableId, observable$, options);
|
|
1898
1811
|
}
|
|
1899
1812
|
/**
|
|
@@ -1960,34 +1873,24 @@ function StorageImage(props) {
|
|
|
1960
1873
|
}
|
|
1961
1874
|
}
|
|
1962
1875
|
|
|
1876
|
+
var AppCheckSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1963
1877
|
var AuthSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1878
|
+
var AnalyticsSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1964
1879
|
var DatabaseSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1965
1880
|
var FirestoreSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1881
|
+
var FunctionsSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1966
1882
|
var StorageSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1967
1883
|
var PerformanceSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1968
1884
|
var RemoteConfigSdkContext = /*#__PURE__*/createContext(undefined);
|
|
1969
1885
|
|
|
1970
1886
|
function getSdkProvider(SdkContext) {
|
|
1971
1887
|
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
|
-
}
|
|
1888
|
+
var _props$sdk, _props$sdk$app;
|
|
1990
1889
|
|
|
1890
|
+
if (!props.sdk) throw new Error('no sdk provided');
|
|
1891
|
+
var contextualAppName = useFirebaseApp().name;
|
|
1892
|
+
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;
|
|
1893
|
+
if (sdkAppName !== contextualAppName) throw new Error('sdk was initialized with a different firebase app');
|
|
1991
1894
|
return createElement(SdkContext.Provider, _extends({
|
|
1992
1895
|
value: props.sdk
|
|
1993
1896
|
}, props));
|
|
@@ -2019,21 +1922,33 @@ function useInitSdk(sdkName, SdkContext, sdkInitializer, options) {
|
|
|
2019
1922
|
return useObservable("firebase-sdk:" + sdkName + ":" + firebaseApp.name, from(initializeSdk), options);
|
|
2020
1923
|
}
|
|
2021
1924
|
|
|
1925
|
+
var AppCheckProvider = /*#__PURE__*/getSdkProvider(AppCheckSdkContext);
|
|
2022
1926
|
var AuthProvider = /*#__PURE__*/getSdkProvider(AuthSdkContext);
|
|
1927
|
+
var AnalyticsProvider = /*#__PURE__*/getSdkProvider(AnalyticsSdkContext);
|
|
2023
1928
|
var DatabaseProvider = /*#__PURE__*/getSdkProvider(DatabaseSdkContext);
|
|
2024
1929
|
var FirestoreProvider = /*#__PURE__*/getSdkProvider(FirestoreSdkContext);
|
|
1930
|
+
var FunctionsProvider = /*#__PURE__*/getSdkProvider(FunctionsSdkContext);
|
|
2025
1931
|
var PerformanceProvider = /*#__PURE__*/getSdkProvider(PerformanceSdkContext);
|
|
2026
1932
|
var StorageProvider = /*#__PURE__*/getSdkProvider(StorageSdkContext);
|
|
2027
1933
|
var RemoteConfigProvider = /*#__PURE__*/getSdkProvider(RemoteConfigSdkContext);
|
|
1934
|
+
var useAppCheck = function useAppCheck() {
|
|
1935
|
+
return useSdk(AppCheckSdkContext);
|
|
1936
|
+
};
|
|
2028
1937
|
var useAuth = function useAuth() {
|
|
2029
1938
|
return useSdk(AuthSdkContext);
|
|
2030
1939
|
};
|
|
1940
|
+
var useAnalytics = function useAnalytics() {
|
|
1941
|
+
return useSdk(AnalyticsSdkContext);
|
|
1942
|
+
};
|
|
2031
1943
|
var useDatabase = function useDatabase() {
|
|
2032
1944
|
return useSdk(DatabaseSdkContext);
|
|
2033
1945
|
};
|
|
2034
1946
|
var useFirestore = function useFirestore() {
|
|
2035
1947
|
return useSdk(FirestoreSdkContext);
|
|
2036
1948
|
};
|
|
1949
|
+
var useFunctions = function useFunctions() {
|
|
1950
|
+
return useSdk(FunctionsSdkContext);
|
|
1951
|
+
};
|
|
2037
1952
|
var usePerformance = function usePerformance() {
|
|
2038
1953
|
return useSdk(PerformanceSdkContext);
|
|
2039
1954
|
};
|
|
@@ -2043,15 +1958,24 @@ var useStorage = function useStorage() {
|
|
|
2043
1958
|
var useRemoteConfig = function useRemoteConfig() {
|
|
2044
1959
|
return useSdk(RemoteConfigSdkContext);
|
|
2045
1960
|
};
|
|
1961
|
+
var useInitAppCheck = function useInitAppCheck(initializer, options) {
|
|
1962
|
+
return useInitSdk('appcheck', AppCheckSdkContext, initializer, options);
|
|
1963
|
+
};
|
|
2046
1964
|
var useInitAuth = function useInitAuth(initializer, options) {
|
|
2047
1965
|
return useInitSdk('auth', AuthSdkContext, initializer, options);
|
|
2048
1966
|
};
|
|
1967
|
+
var useInitAnalytics = function useInitAnalytics(initializer, options) {
|
|
1968
|
+
return useInitSdk('analytics', AnalyticsSdkContext, initializer, options);
|
|
1969
|
+
};
|
|
2049
1970
|
var useInitDatabase = function useInitDatabase(initializer, options) {
|
|
2050
1971
|
return useInitSdk('database', DatabaseSdkContext, initializer, options);
|
|
2051
1972
|
};
|
|
2052
1973
|
var useInitFirestore = function useInitFirestore(initializer, options) {
|
|
2053
1974
|
return useInitSdk('firestore', FirestoreSdkContext, initializer, options);
|
|
2054
1975
|
};
|
|
1976
|
+
var useInitFunctions = function useInitFunctions(initializer, options) {
|
|
1977
|
+
return useInitSdk('functions', FunctionsSdkContext, initializer, options);
|
|
1978
|
+
};
|
|
2055
1979
|
var useInitPerformance = function useInitPerformance(initializer, options) {
|
|
2056
1980
|
return useInitSdk('performance', PerformanceSdkContext, initializer, options);
|
|
2057
1981
|
};
|
|
@@ -2097,5 +2021,5 @@ function checkIdField(options) {
|
|
|
2097
2021
|
return checkOptions(options, 'idField');
|
|
2098
2022
|
}
|
|
2099
2023
|
|
|
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 };
|
|
2024
|
+
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
2025
|
//# sourceMappingURL=reactfire.esm.js.map
|