Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Android Kotlin Pusher error Start method must be called before setUserId pusher

Abierto
#265 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
15/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
android, kotlin
Área
mobile

Línea de trabajo

The report is a Kotlin Android app calling PushNotifications.start, setUserId, close and clearAllState from the Beams SDK, and it crashes with 'Start method must be called before setUserId'. Start with the sequence in the snippet: start runs inside GlobalScope.launch, while setUserId runs only after an async view-model callback, and close and clearAllState run during logout. The work is done when the ordering problem is reproduced or explained and the reporter's flow is confirmed. The issue has two comments, no assignee and no linked pull request, and the last comment was about 994 days ago, so confirm with a maintainer that it is still wanted before starting.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

question

version pusher = "2.2.1"
version pusherNotifications = "1.6.2"
Hi,
I don´t understand this error... It only happens when I close session and call to

  PushNotifications.close()
  PushNotifications.clearAllState()

Then when go to my first Activity the app crash with the error
Pusher error Start method must be called before setUserId pusher.
But as you can see in my below code I call PushNotifications.start() first.
When the apps crash and open again, all works fine
My code
onCreate(savedInstanceState: Bundle?) {initPusher() }
initPusher is this code

        GlobalScope.launch(dispatchers.main) {
            PushNotifications.start(applicationContext, "xxxxxxx-xxx-xxxxx-xx-xxxxxx")
            viewModel.loadInfoPusherSubscribe {
                val userId = it.first
                val token = it.second
                val realToken = "Bearer "+ token
                val realURL = "https://xxxxxxxxxxx?user_id=$userId"
                val tokenProvider = BeamsTokenProvider(
                    realURL,
                    object : AuthDataGetter {
                        override fun getAuthData(): AuthData {
                            return AuthData(
                                // Headers and URL query params your auth endpoint needs to
                                // request a Beams Token for a given user
                                headers = hashMapOf( Pair("Authorization", realToken),
                                                     Pair("accept", "text/plain"),
                                                     Pair("Content-Type", "application/json-patch+json")),
                                queryParams = hashMapOf()
                            )
                        }
                    }
                )

                PushNotifications.setUserId(userId, tokenProvider,
                    object : BeamsCallback<Void, PusherCallbackError> {
                        override fun onFailure(error: PusherCallbackError) {
                            Log.e("BeamsAuth", "Could not login to Beams: ${error.message}");
                        }

                        override fun onSuccess(vararg values: Void) {
                            Log.i("BeamsAuth", "Beams login success");
                        }
                    }
                )
            }
        }
My viewModel
 suspend fun loadInfoPusherSubscribe(listener: InfoPusherListener)=
       viewModelScope.launch(dispatchers.io) {
           val profileId = async { profileDao.getProfileUser().id }
           val token =  async { session.getSessionUser().accessToken }
           withContext(dispatchers.main){
               listener.invoke(Pair(profileId.await(),token.await()))

           }

    }

What is the problem?
PushNotifications.start() is asynchronous method???

Lenguaje dominante
Java
Estrellas
315
Forks
140
Merge medio
11 d 5 h
PR fusionados (30 d)
4

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pusher/pusher-websocket-java

Todos los issues de pusher/pusher-websocket-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.