НЕИЗВЕСТНАЯ ОШИБКА: функция Firebase вызывается из приложения android - PullRequest
0 голосов
/ 04 августа 2020

Я только начал работать с вызываемыми функциями на firebase. Я развернул функцию, которая дает ответ hello world. Он работал нормально, когда я тестировал его локально. Сейчас пытаюсь позвонить из приложения android. Согласно этому документу , эти вызываемые функции автоматически передают данные аутентификации и десериализуют данные, чтобы получить идентификатор пользователя в функции. Когда я запускаю, как предложено в документе выше, я получаю сообщение об ошибке «Не аутентифицировано». Я использовал вход в Google, используя firebase auth в приложении. Я не хочу делать его publi c и оставлять его закрытым, чтобы запросы могли отправлять только пользователи. Есть ли способ вручную включить аутентификацию в заголовок запроса. Вот код с звонка

               sendmessage(string)
                        .addOnCompleteListener {
                            if (!it.isSuccessful){
                                val e= it.exception
                                if(e is FirebaseFunctionsException){
                                    val code =e.code
                                    val details = e.details
                                    Log.d("Firebase error",code.toString()+details.toString())
                                }
                          
                            }
                            else{
                                Log.d("result obtained",it.result.toString())
                            }
                        }
private fun sendmessage(question:String): Task<String> {
        val data = hashMapOf(
            "question" to question,
            "push" to true
        )

        return functions
            .getHttpsCallable("detectIntent")
            .call(data)
            .continueWith {
                val result=it.result?.data as String
                result
            }
    }


1 Ответ

0 голосов
/ 04 августа 2020

Вызываемые функции не обеспечивают никакого контроля над тем, что происходит в заголовках HTTP. Аутентификация выполняется автоматически в зависимости от состояния пользователя, выполнившего вход через Firebase Auth. Если вы не получаете аутентифицированного пользователя в своей функции в context.auth, это означает, что вы сделали запрос до того, как вход был завершен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...