Разбор данных запроса Cloud Functions TypeScript + Android - PullRequest
0 голосов
/ 25 мая 2020

Я сейчас пытаюсь отправить данные из приложения в Firebase Cloud Functions. Это мой код в Android:

    val hashMap = hashMapOf<String, Any>()
    hashMap.put("uid", uid)
    val result = FirebaseFunctions.getInstance()
        .getHttpsCallable("getUserDetails")
        .call(hashMap).await()

А это мой код TypeScript:

export const getUserDetails = functions.https.onRequest(async (request, response) => {
        try {
            console.log("uid" + request.rawBody + request.body.toString() + request.query.data
          + request.params.data)
..........................
}

Я пробовал request.param ("", "") устарел. Я пробовал использовать request.params.uid и пытался выполнить синтаксический анализ с помощью JSON, но ничего не работает. В журнале я вижу, что в request.rawBody есть данные, но я не знаю, как перейти к нужному мне c полю

Изображение журнала

1 Ответ

1 голос
/ 25 мая 2020

Вы смешиваете Вызываемые облачные функции и Облачные функции HTTP .

Код вашей облачной функции соответствует HTTP (functions.https.onRequest(...)), но код в вашем интерфейсе вызывает вызываемый (FirebaseFunctions.getInstance().getHttpsCallable("getUserDetails")).

Вы должны адаптировать один или другой, скорее всего, адаптировать свою облачную функцию к вызываемой, в следующих строках:

export const getUserDetails = functions.https.onCall(async (data, context) => {

        try {
             const uid = data.uid;

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