firebase / firebase/firebase-js-sdk
Add support for addEventListener(...) and other EventTarget methods
- 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
Assessment
This issue has not been assessed yet.