firebase / firebase/firebase-js-sdk

Add support for addEventListener(...) and other EventTarget methods

Open
#139 0 comments 0 reactions 0 assignees View on GitHub
api: messaging feature request
Dominant language
TypeScript
Stars
5.1k
Forks
1k
Avg merge
2d 21h
Merged PRs (30d)
37

Description

### Describe your environment

* Operating System version: NA
* Firebase SDK version: 4.2
* Firebase Product: messaging

### Describe the problem

Actual:

There's no `addEventListener()` method on the `firebase.messaging()` object.

Expected:

The following code outputs "MESSAGE 1" and "MESSAGE 2" when a message is received:

```js
firebase.messaging().addEventListener("message", () => console.log("MESSAGE 1"));
firebase.messaging().addEventListener("message", () => console.log("MESSAGE 2"));
```

Discussion:

The method names [`onMessage()`](https://firebase.google.com/docs/reference/js/firebase.messaging.Messaging#onMessage) and [`onTokenRefresh()`](https://firebase.google.com/docs/reference/js/firebase.messaging.Messaging#onTokenRefresh) suggest that `firebase.messaging.Messaging` implements the [EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget) interface. However, this is not the case, which impairs the DX, as well as making it impossible to easily add multiple listeners for the same event, remove listeners, etc.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.