firebase / firebase/firebase-admin-java
Class Conflict between two Firebase modules.
- Linguagem predominante
- Java
- Estrelas
- 620
- Forks
- 305
- Merge médio
- 3h 23min
- PRs com merge (30d)
- 1
Descrição
### 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!
Guia de contribuição
Direção de pesquisa
Comece com as dependências do Gradle no nível do app mostradas na issue e compare os artefatos firebase-admin e firebase-messaging com o tutorial de Cloud Messaging vinculado. Determine se os dois módulos podem coexistir sem o pacote duplicado com.google.firebase.messaging; considera-se concluído quando uma configuração documentada de dependências resolve FirebaseMessaging e expõe a API sendMulticast do tutorial.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- android, firebase, java
- Domínio
- build-system, mobile
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 25/100