diff --git a/packages/analytics/e2e/analytics.e2e.js b/packages/analytics/e2e/analytics.e2e.js index 1dbd7c9602..bc48a41aa3 100644 --- a/packages/analytics/e2e/analytics.e2e.js +++ b/packages/analytics/e2e/analytics.e2e.js @@ -368,6 +368,15 @@ describe('analytics()', function () { it('calls logViewItemList', async function () { await firebase.analytics().logViewItemList({ item_list_name: 'foo', + items: [ + { + item_id: 'foo', + item_name: 'foo', + item_category: 'foo', + item_location_id: 'foo', + price: 123, + }, + ], }); }); }); diff --git a/packages/analytics/lib/index.d.ts b/packages/analytics/lib/index.d.ts index d3bbbce951..0e324f95f1 100644 --- a/packages/analytics/lib/index.d.ts +++ b/packages/analytics/lib/index.d.ts @@ -103,6 +103,12 @@ export namespace FirebaseAnalyticsTypes { * The Item quantity. */ quantity?: number; + /** + * The Item price. + * Note that firebase analytics will display this as an integer with trailing zeros, due to some firebase-internal conversion. + * See https://github.com/invertase/react-native-firebase/issues/4578#issuecomment-771703420 for more information + */ + price?: number; } export interface AddPaymentInfoEventParameters { diff --git a/packages/analytics/lib/structs.js b/packages/analytics/lib/structs.js index a1037b8f3d..8984be8eac 100644 --- a/packages/analytics/lib/structs.js +++ b/packages/analytics/lib/structs.js @@ -29,6 +29,7 @@ const Item = struct({ item_location_id: 'string?', item_variant: 'string?', quantity: 'number?', + price: 'number?', }); export const ScreenView = struct({