Skip to content

Commit b59e53e

Browse files
authored
Merge b7ec7bb into 0197076
2 parents 0197076 + b7ec7bb commit b59e53e

File tree

3 files changed

+24
-7
lines changed

3 files changed

+24
-7
lines changed

.changeset/sour-hornets-care.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@firebase/messaging': patch
3+
---
4+
5+
Fix missing FcmOptions.link

packages/messaging/src/helpers/externalizePayload.test.ts

+9-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ describe('externalizePayload', () => {
2626
notification: {
2727
title: 'title',
2828
body: 'body',
29-
image: 'image'
29+
image: 'image',
30+
// eslint-disable-next-line camelcase
31+
click_action: 'https://www.self_orgin.com'
3032
},
3133
from: 'from',
3234
// eslint-disable-next-line camelcase
@@ -39,7 +41,10 @@ describe('externalizePayload', () => {
3941
notification: { title: 'title', body: 'body', image: 'image' },
4042
from: 'from',
4143
collapseKey: 'collapse',
42-
messageId: 'mid'
44+
messageId: 'mid',
45+
fcmOptions: {
46+
link: 'https://www.self_orgin.com'
47+
}
4348
};
4449
expect(externalizePayload(internalPayload)).to.deep.equal(payload);
4550
});
@@ -80,7 +85,7 @@ describe('externalizePayload', () => {
8085
baz: 'baz'
8186
},
8287
fcmOptions: {
83-
link: 'link',
88+
link: 'https://www.self_orgin.com',
8489
// eslint-disable-next-line camelcase
8590
analytics_label: 'label'
8691
},
@@ -103,7 +108,7 @@ describe('externalizePayload', () => {
103108
baz: 'baz'
104109
},
105110
fcmOptions: {
106-
link: 'link',
111+
link: 'https://www.self_orgin.com',
107112
analyticsLabel: 'label'
108113
},
109114
from: 'from',

packages/messaging/src/helpers/externalizePayload.ts

+10-3
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,26 @@ function propagateFcmOptions(
7777
payload: MessagePayload,
7878
messagePayloadInternal: MessagePayloadInternal
7979
): void {
80-
if (!messagePayloadInternal.fcmOptions) {
80+
// fcmOptions.link value is written into notification.click_action. see more in b/232072111
81+
if (
82+
!messagePayloadInternal.fcmOptions &&
83+
!messagePayloadInternal.notification?.click_action
84+
) {
8185
return;
8286
}
8387

8488
payload.fcmOptions = {};
8589

86-
const link = messagePayloadInternal.fcmOptions!.link;
90+
const link =
91+
messagePayloadInternal.fcmOptions?.link ??
92+
messagePayloadInternal.notification?.click_action;
93+
8794
if (!!link) {
8895
payload.fcmOptions!.link = link;
8996
}
9097

9198
// eslint-disable-next-line camelcase
92-
const analyticsLabel = messagePayloadInternal.fcmOptions!.analytics_label;
99+
const analyticsLabel = messagePayloadInternal.fcmOptions?.analytics_label;
93100
if (!!analyticsLabel) {
94101
payload.fcmOptions!.analyticsLabel = analyticsLabel;
95102
}

0 commit comments

Comments
 (0)