Skip to content

Commit 9bb5365

Browse files
committed
fix(app): provide modular-like APIs for RNFB-specific json/meta/preferences methods
1 parent 7a145d2 commit 9bb5365

File tree

3 files changed

+113
-16
lines changed

3 files changed

+113
-16
lines changed

packages/app/e2e/config.e2e.js

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
describe('config', function () {
1919
describe('meta', function () {
2020
it('should read Info.plist/AndroidManifest.xml meta data', async function () {
21-
const metaData = await NativeModules.RNFBAppModule.metaGetAll();
21+
const { metaGetAll } = modular;
22+
const metaData = await metaGetAll();
2223
if (Platform.other) return;
2324
metaData.rnfirebase_meta_testing_string.should.equal('abc');
2425
metaData.rnfirebase_meta_testing_boolean_false.should.equal(false);
@@ -28,7 +29,8 @@ describe('config', function () {
2829

2930
describe('json', function () {
3031
it('should read firebase.json data', async function () {
31-
const jsonData = await NativeModules.RNFBAppModule.jsonGetAll();
32+
const { jsonGetAll } = modular;
33+
const jsonData = await jsonGetAll();
3234
if (Platform.other) return;
3335
jsonData.rnfirebase_json_testing_string.should.equal('abc');
3436
jsonData.rnfirebase_json_testing_boolean_false.should.equal(false);
@@ -38,40 +40,43 @@ describe('config', function () {
3840

3941
describe('prefs', function () {
4042
beforeEach(async function () {
41-
await NativeModules.RNFBAppModule.preferencesClearAll();
43+
const { preferencesClearAll } = modular;
44+
await preferencesClearAll();
4245
});
4346

4447
// NOTE: "preferencesClearAll" clears Firestore settings. Set DB as emulator again.
4548
after(async function () {
49+
const { connectFirestoreEmulator, getFirestore } = firestoreModular;
4650
if (Platform.other) return;
47-
await firebase
48-
.firestore()
49-
.settings({ host: 'localhost:8080', ssl: false, persistence: true });
51+
connectFirestoreEmulator(getFirestore(), 'localhost', 8080);
5052
});
5153

5254
it('should set bool values', async function () {
53-
const prefsBefore = await NativeModules.RNFBAppModule.preferencesGetAll();
55+
const { preferencesGetAll, preferencesSetBool } = modular;
56+
const prefsBefore = await preferencesGetAll();
5457
should.equal(prefsBefore.invertase_oss, undefined);
55-
await NativeModules.RNFBAppModule.preferencesSetBool('invertase_oss', true);
56-
const prefsAfter = await NativeModules.RNFBAppModule.preferencesGetAll();
58+
await preferencesSetBool('invertase_oss', true);
59+
const prefsAfter = await preferencesGetAll();
5760
prefsAfter.invertase_oss.should.equal(true);
5861
});
5962

6063
it('should set string values', async function () {
61-
const prefsBefore = await NativeModules.RNFBAppModule.preferencesGetAll();
64+
const { preferencesGetAll, preferencesSetString } = modular;
65+
const prefsBefore = await preferencesGetAll();
6266
should.equal(prefsBefore.invertase_oss, undefined);
63-
await NativeModules.RNFBAppModule.preferencesSetString('invertase_oss', 'invertase.io');
64-
const prefsAfter = await NativeModules.RNFBAppModule.preferencesGetAll();
67+
await preferencesSetString('invertase_oss', 'invertase.io');
68+
const prefsAfter = await preferencesGetAll();
6569
prefsAfter.invertase_oss.should.equal('invertase.io');
6670
});
6771

6872
it('should clear all values', async function () {
69-
await NativeModules.RNFBAppModule.preferencesSetString('invertase_oss', 'invertase.io');
70-
const prefsBefore = await NativeModules.RNFBAppModule.preferencesGetAll();
73+
const { preferencesClearAll, preferencesGetAll, preferencesSetString } = modular;
74+
await preferencesSetString('invertase_oss', 'invertase.io');
75+
const prefsBefore = await preferencesGetAll();
7176
prefsBefore.invertase_oss.should.equal('invertase.io');
7277

73-
await NativeModules.RNFBAppModule.preferencesClearAll();
74-
const prefsAfter = await NativeModules.RNFBAppModule.preferencesGetAll();
78+
await preferencesClearAll();
79+
const prefsAfter = await preferencesGetAll();
7580
should.equal(prefsAfter.invertase_oss, undefined);
7681
});
7782
});

packages/app/lib/modular/index.d.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,46 @@ export function getApp(name?: string): FirebaseApp;
7171
*/
7272
export function setLogLevel(logLevel: LogLevelString): void;
7373

74+
/**
75+
* Gets react-native-firebase specific "meta" data from native Info.plist / AndroidManifest.xml
76+
* @returns map of key / value pairs containing native meta data
77+
*/
78+
export function metaGetAll(): Promise<{ [keyof: string]: string | boolean }>;
79+
80+
/**
81+
* Gets react-native-firebase specific "firebase.json" data
82+
* @returns map of key / value pairs containing native firebase.json constants
83+
*/
84+
export function jsonGetAll(): Promise<{ [keyof: string]: string | boolean }>;
85+
86+
/**
87+
* Clears react-native-firebase specific native preferences
88+
* @returns Promise<void>
89+
*/
90+
export function preferencesClearAll(): Promise<void>;
91+
92+
/**
93+
* Gets react-native-firebase specific native preferences
94+
* @returns map of key / value pairs containing native preferences data
95+
*/
96+
export function preferencesGetAll(): Promise<{ [keyof: string]: string | boolean }>;
97+
98+
/**
99+
* Sets react-native-firebase specific native boolean preference
100+
* @param key the name of the native preference to set
101+
* @param value the value of the native preference to set
102+
* @returns Promise<void>
103+
*/
104+
export function preferencesSetBool(key: string, value: boolean): Promise<void>;
105+
106+
/**
107+
* Sets react-native-firebase specific native string preference
108+
* @param key the name of the native preference to set
109+
* @param value the value of the native preference to set
110+
* @returns Promise<void>
111+
*/
112+
export function preferencesSetString(key: string, value: string): Promise<void>;
113+
74114
/**
75115
* The `AsyncStorage` implementation to use for persisting data on 'Other' platforms.
76116
* If not specified, in memory persistence is used.

packages/app/lib/modular/index.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,56 @@ export function setReactNativeAsyncStorage(asyncStorage) {
9595
return setReactNativeAsyncStorageCompat.call(null, asyncStorage, MODULAR_DEPRECATION_ARG);
9696
}
9797

98+
/**
99+
* Gets react-native-firebase specific "meta" data from native Info.plist / AndroidManifest.xml
100+
* @returns map of key / value pairs containing native meta data
101+
*/
102+
export function metaGetAll() {
103+
return NativeModules.RNFBAppModule.metaGetAll();
104+
}
105+
106+
/**
107+
* Gets react-native-firebase specific "firebase.json" data
108+
* @returns map of key / value pairs containing native firebase.json constants
109+
*/
110+
export function jsonGetAll() {
111+
return NativeModules.RNFBAppModule.jsonGetAll();
112+
}
113+
114+
/**
115+
* Clears react-native-firebase specific native preferences
116+
* @returns Promise<void>
117+
*/
118+
export function preferencesClearAll() {
119+
return NativeModules.RNFBAppModule.preferencesClearAll();
120+
}
121+
122+
/**
123+
* Gets react-native-firebase specific native preferences
124+
* @returns map of key / value pairs containing native preferences data
125+
*/
126+
export function preferencesGetAll() {
127+
return NativeModules.RNFBAppModule.preferencesGetAll();
128+
}
129+
130+
/**
131+
* Sets react-native-firebase specific native boolean preference
132+
* @param key the name of the native preference to set
133+
* @param value the value of the native preference to set
134+
* @returns Promise<void>
135+
*/
136+
export function preferencesSetBool(key, value) {
137+
return NativeModules.RNFBAppModule.preferencesSetBool(key, value);
138+
}
139+
140+
/**
141+
* Sets react-native-firebase specific native string preference
142+
* @param key the name of the native preference to set
143+
* @param value the value of the native preference to set
144+
* @returns Promise<void>
145+
*/
146+
export function preferencesSetString(key, value) {
147+
return NativeModules.RNFBAppModule.preferencesSetString(key, value);
148+
}
149+
98150
export const SDK_VERSION = sdkVersion;

0 commit comments

Comments
 (0)