firebase / firebase/firebase-admin-java

Class Conflict between two Firebase modules.

Ouverte
#891 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
needs-triage
Langage dominant
Java
Étoiles
620
Forks
305
Merge moyen
3 h 23 min
PR mergées (30 j)
1

Description

### Environment
This is currently the dependencies used in my app-level Gradle build script
```kotlin
dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.10.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.navigation:navigation-fragment:2.7.5")
implementation("androidx.navigation:navigation-ui:2.7.5")

implementation("com.squareup.retrofit2:converter-gson:2.9.0")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")

implementation("com.google.firebase:firebase-admin:9.2.0")
implementation("com.google.firebase:firebase-messaging:23.4.0")
}
```

### Description
**TL;DR**: `firebase-admin` and `firebase-messaging` has the same classpath `com.google.firebase.messaging.*`, but their class's content is totally different.

Currently, I want to use both the module `firebase-admin` and `firebase-messaging` to learn about the feature Cloud Messaging, so I have installed my dependencies as above. The issue arose when I wanted to import the class `FirebaseMessaging`.

```java
// Create a list containing up to 500 registration tokens.
// These registration tokens come from the client FCM SDKs.
List registrationTokens = Arrays.asList(
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n"
);

MulticastMessage message = MulticastMessage.builder()
.putData("score", "850")
.putData("time", "2:45")
.addAllTokens(registrationTokens)
.build();
BatchResponse response = FirebaseMessaging.getInstance().sendMulticast(message);
// See the BatchResponse reference documentation
// for the contents of response.
System.out.println(response.getSuccessCount() + " messages were sent successfully");
```

While I was following [this tutorial] (https://firebase.google.com/docs/cloud-messaging/send-message#send-messages-to-multiple-devices) to build a send request to multiple devices, my IDE could not resolve the method `sendMutlicast()`

It turned out that while the imported class was `com.google.firebase.messaging.FirebaseMessaging`, the class was from the module `firebase-messaging` , which did not contain any of useful `send` method, rather than `firebase-admin`.

Is there anyway I can import the class `FirebaseMessaging` from `firebase-admin` and still keeping the two modules? I had switching the import order in Gradle file but still to no avail.

Thank you very much!

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par les dépendances Gradle au niveau de l’application indiquées dans l’issue et comparez les artefacts firebase-admin et firebase-messaging avec le tutoriel Cloud Messaging lié. Déterminez si les deux modules peuvent coexister sans le package dupliqué com.google.firebase.messaging ; le travail est terminé lorsqu’une configuration documentée des dépendances résout FirebaseMessaging et expose l’API sendMulticast du tutoriel.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, firebase, java
Domaine
build-system, mobile
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.