firebase / firebase/firebase-admin-java
NullPointerException when using cloud messaging
- Vorherrschende Sprache
- Java
- Sterne
- 620
- Forks
- 305
- Ø Merge
- 3 Std. 23 Min.
- Gemergte PRs (30 T.)
- 1
Beschreibung
* Library version: 9.4.3
* Firebase Product: cloud messaging
When we are sending messages in bulk to devices using device specific tokens, we randomly get the error below:
```
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:595)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:574)
at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:91)
at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:67)
at businessLayer.Messaging.sendPush(Messaging.java:777)
...
```
We are using the method sendEachAsync:
`BatchResponse firebaseResponse = FirebaseMessaging.getInstance(firebaseApp).sendEachAsync(firebaseMessages, pushDryRun).get();`
Besides the error showing up randomly when we are sending the messages, it seems that in older version of the library (<= 9.3.0), that the error is:
```
java.util.concurrent.ExecutionException: com.google.firebase.messaging.FirebaseMessagingException: com.google.firebase.messaging.FirebaseMessaging
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:594)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:573)
at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:91)
at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:67)
at businessLayer.Messaging.sendPush(Messaging.java:777)
...
```
The problem for us is that it seems that this error started showing up randomly last month.
At least some messages seem to be sent, because we have info that users are seeing and clicking on the notifications.
So, it seems that we are correctly calling the procedure.
Any help would be welcomed.
Beitragsleitfaden
Rechercherichtung
Beginnen Sie mit dem sendEachAsync-Aufruf und businessLayer.Messaging.sendPush in Messaging.java:777, und reproduzieren Sie anschließend einen Bulk-Versand an gerätespezifische Tokens mit Bibliotheksversion 9.4.3. Verfolgen Sie, warum das asynchrone Ergebnis zu einer NullPointerException statt zur älteren FirebaseMessagingException wird, und überprüfen Sie, dass Bulk-Versände einen verwertbaren Fehler melden, während erfolgreiche Benachrichtigungen unbeeinträchtigt bleiben.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- firebase, java
- Bereich
- backend, cloud
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100