Могу ли я использовать почтальон для методов onCall, сделанных как функции в firebase? - PullRequest
0 голосов
/ 22 февраля 2019

Итак, я сделал этот очень простой метод, в котором я хочу войти в firebase, используя собственный токен.На данный момент это просто

export const createCustomToken = functions.region('europe-west1').https.onCall(async (data, context) => {

    try {
        const firebaseJWT = await authenticationProvider.createCustomToken()
        console.log(firebaseJWT.toString())
    } catch (err) {
        throw new functions.https.HttpsError('internal', 'Something went wrong ');
    }
});

Аутентификатор проверки подлинности выглядит следующим образом:

return firebase.admin.auth().createCustomToken("Some uid")
       .then((token) => {
           console.log("Did create custom token.");
           return token;
       }).catch((error) => {
           console.log("Error creating custom token:" + error);
           throw new firebase.functions.https.HttpsError('internal', 'createCustomToken(uid) has failed for some reason');
       }) 
}

Я пытался использовать метод оболочки, чтобы запустить его локально, выполнив эту строку в командной строке: firebase functions: shell и затем вызывает authenticationController.createCustomToken ({})

, который просто дает мне этот ответ: Ошибка создания пользовательского токена: Ошибка: Не удалось определить учетную запись службы.Обязательно инициализируйте SDK с учетными данными учетной записи службы.Также можно указать учетную запись службы с разрешением iam.serviceAccounts.signBlob.Исходная ошибка: Ошибка: Ошибка при выполнении запроса: getaddrinfo ENOTFOUND метаданные метаданных: 80.Код ошибки: ENOTFOUND

У служебной учетной записи, похоже, правильные роли, поэтому я не думаю, что в этом проблема.

Поэтому мне было интересно, можно ли как-нибудь вызвать меня createCustomToken(), например, из Postman, и посмотреть ответ, чтобы я мог правильно протестировать свой код, не заставляя приложение реализовать метод onCall для просмотра результатов?

Или чего мне не хватает, чтобы выполнить это через базу данных огняфункции: команда оболочки?

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете протестировать функции firebase на Postman, используя заголовки запросов, как описано в официальной документации здесь

Сначала вам придется обслуживать свои функции локально, используя следующую команду в корневой папке вашего проекта

firebase serve

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

При выполнении вышеуказанной команды вы получите ссылку http для своей функции.Примерно так:

http://localhost:5000/{YOUR_FIREBASE_PROJECT_NAME}/us-central1/myFunction

Используйте эту ссылку для запроса POST в Почтальоне.В разделе «Body» Почтальона выберите «Raw», затем «JSON (application / json)» из выпадающего списка и введите следующий образец тела в разделе body

{
    "data": {}
}

Добавление этого объекта json с «data»Аргумент в теле необходим, как указано в документации здесь .Проверьте следующий скриншот для справки

Screenshot displaying sample body for requesting onCall method in Postman

Теперь вы можете отправить запрос на получение ответа от вашей функции.Надеюсь, это поможет:)

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