[FR] Expose `link` / `link_android` in notifications for deep linking
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- firebase, java
- Domain
- api, backend-api-design
Research direction
Start by locating the Notification and AndroidNotification classes and the HTTP API payload mapping. Review how existing notification properties are serialized, then determine how link and link_android should map to gcm.n.link and gcm.n.link_android. Done means the officially supported fields produce the required deep-link notification payloads.
Written by the indexing model from the issue text.
Description
Problem statement
Deep linking on Android requires the data field in the Intent to be set. As described in this SO post or firebase/firebase-android-sdk#6703, the only way to populate the the field in notifications created automatically by the Firebase Android SDK (when the app is in the background) is by setting the gcm.n.link or gcm.n.link_android keys in data, which have reserved prefixes and are therefore not supposed to be used (although setting them works, at least today).
Originally posted by @lehcar09 in #6703:
Alternatively, we can file a feature request to support the
linkorlink_androidfield. I’ll get back to you once I hear back from them.
So, this is the FR to officially support these :)
Strawman
A strawman proposal would be to add link properties to the Notification / AndroidNotification classes, which would then be mapped to gcm.n.link / gcm.n.link_android in the JSON payload. Equivalently, in the HTTP API instead of this:
{
"message": {
"notification": {
"title": "Lorem",
"body": "Ipsum"
},
"data": {
"gcm.n.link": "app://deep/link"
},
}
}
It would be this:
{
"message": {
"notification": {
"title": "Lorem",
"body": "Ipsum",
"link": "app://deep/link"
}
}
}
or this:
{
"message": {
"android": {
"notification": {
"title": "Lorem",
"body": "Ipsum",
"link": "app://deep/link"
}
}
}
}
Alternatives
The workaround suggested here of using setAction doesn't work, because actions needs to be declared in the Android manifest in order to match the intent, which conflicts with dynamically registering deep link targets.
Thanks!
- Dominant language
- Java
- Stars
- 620
- Forks
- 305
- Avg merge
- 3h 23m
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from firebase/firebase-admin-java
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
firebase/firebase-admin-java#1231 ·
-
api: core
firebase/firebase-admin-java#1198 · 3 comments · 1 assignee ·
-
api: remoteconfig
firebase/firebase-admin-java#1196 · 1 comment · 2 assignees ·
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
firebase/firebase-admin-java#1192 · 3 comments ·
-
needs-triage type: feature request
Difficulty 3/5 1-2 days Newbie friendliness 45/100
firebase/firebase-admin-java#1149 · 1 comment ·
All issues in firebase/firebase-admin-java
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
Two open-case totals on one screen: the Programs tile says 15,858 and the nav badge says 15,868 Openbug frontend maui-pilot
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
objectionary/eo-graphs#74 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100