Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
2ec305d
feat: Process experiment metadata in RC fetch response
May 30, 2025
5eb6b8d
feat: Add ABT support for remote config
Jun 6, 2025
08c8863
feat: Integrate firebase internal analytics with ABT
Jun 6, 2025
4af3eb9
Merge branch 'web-experiment' into web-exp-fetch
Jul 19, 2025
b6f2ac9
Merge branch 'web-exp-fetch' into web-exp-abt
Jul 19, 2025
55db6e0
Merge branch 'web-exp-abt' into web-exp-ga
Jul 19, 2025
24848c4
[Fix] Storage cache is not updating when there are no experiments in …
Jul 19, 2025
455b8e3
[Fix] Update experiments after checking fetch response
Jul 19, 2025
e2024d7
Merge branch 'web-exp-abt' into web-exp-ga
Jul 19, 2025
bec6e56
feat: Process experiment metadata in RC fetch response
May 30, 2025
ee703b9
[Fix] Storage cache is not updating when there are no experiments in …
Jul 19, 2025
7c67f85
Add result of running yarn docgen:all
Sep 25, 2025
06398f6
feat: Process experiment metadata in RC fetch response
May 30, 2025
fd049e2
feat: Add ABT support for remote config
Jun 6, 2025
638cc2c
[Fix] Storage cache is not updating when there are no experiments in …
Jul 19, 2025
900eff5
Merge conflict fix
Sep 25, 2025
432ac24
Yarn format fix
Sep 25, 2025
ccc71e1
Fix merge conflicts
Sep 25, 2025
5836eaf
merge web-exp-abt
Sep 25, 2025
6be23df
Integrate ABT with Firebase analytics to add experiment as UP
Sep 25, 2025
66b104b
Fix yarn format errors
Sep 25, 2025
b289636
Address review comments
Sep 25, 2025
d3e0838
Fix yarn format failures
Sep 25, 2025
aa7751e
yarn docgen changes added
Sep 25, 2025
19c0fd6
Export firebaseExperimentDescription
Sep 26, 2025
b3f5fa1
Merge branch 'web-exp-fetch' into web-exp-abt
Sep 26, 2025
27cb4b2
Merge branch 'web-exp-abt' into web-exp-ga
Sep 26, 2025
d09a338
Merge branch 'web-experiment' into web-exp-ga
Sep 29, 2025
4c19690
Address review comments
Sep 29, 2025
4eba42d
Address review comments
Oct 1, 2025
bbc8f4d
Add unit tests
Oct 1, 2025
b53e512
Add error handling
Oct 1, 2025
76fd2ad
Remove log
Oct 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions packages/remote-config/src/abt/experiment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@ import { Storage } from '../storage/storage';
import { FirebaseExperimentDescription } from '../public_types';
import { Provider } from '@firebase/component';
import { FirebaseAnalyticsInternalName } from '@firebase/analytics-interop-types';
import { Logger } from '@firebase/logger';

export class Experiment {
constructor(
private readonly storage: Storage,
private readonly logger: Logger,
private readonly analyticsProvider: Provider<FirebaseAnalyticsInternalName>
) {}

Expand Down Expand Up @@ -76,10 +78,14 @@ export class Experiment {
customProperty: Record<string, string | null>
): Promise<void> {
try {
const analytics = await this.analyticsProvider.get();
analytics.setUserProperties({ properties: customProperty });
const analytics = this.analyticsProvider.getImmediate({ optional: true });
if (analytics) {
analytics.setUserProperties({ properties: customProperty });
} else {
this.logger.warn(`Analytics is not imported correctly`);
}
} catch (error) {
console.error(`Failed to add experiment to analytics :`, error);
this.logger.error(`Failed to add experiment to analytics : ${error}`);
return;
}
}
Expand Down
6 changes: 5 additions & 1 deletion packages/remote-config/src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,11 @@ export async function activate(remoteConfig: RemoteConfig): Promise<boolean> {
// config.
return false;
}
const experiment = new Experiment(rc._storage, rc._analyticsProvider);
const experiment = new Experiment(
rc._storage,
rc._logger,
rc._analyticsProvider
);
const updateActiveExperiments = lastSuccessfulFetchResponse.experiments
? experiment.updateActiveExperiments(
lastSuccessfulFetchResponse.experiments
Expand Down
4 changes: 3 additions & 1 deletion packages/remote-config/test/abt/experiment.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ import { FirebaseExperimentDescription } from '../../src/public_types';
import { Storage } from '../../src/storage/storage';
import { Provider } from '@firebase/component';
import { FirebaseAnalyticsInternalName } from '@firebase/analytics-interop-types';
import { Logger } from '@firebase/logger';

describe('Experiment', () => {
const storage = {} as Storage;
const analyticsProvider = {} as Provider<FirebaseAnalyticsInternalName>;
const experiment = new Experiment(storage, analyticsProvider);
const logger = {} as Logger;
const experiment = new Experiment(storage, logger, analyticsProvider);

describe('updateActiveExperiments', () => {
beforeEach(() => {
Expand Down
Loading