Использование Express в функции вызовов firebase, но создает тайм-аут

Я немного в растерянности.

У меня есть следующая настройка node.js:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const express = require('express');
const cookieParser = require('cookie-parser');
var https = require('https');

admin.initializeApp();

let app = express();

app.use(cookieParser);


// Set/Get Cookie

app.get('/setuser', (req, res) => {
    console.log('**************SET USER');
    console.log('**************req:');
    console.log(req);

    console.log('**************res:');
    console.log(res);
    res.send('setting user');
});

app.get('/getuser', (req, res) => {

    console.log('**************GET USER');
    console.log('**************req:');
    console.log(req);

    console.log('**************res:');
    console.log(res);
    res.send('getting user');
    //res.send(req.cookies);
});

exports.main = functions.https.onRequest(app);

В файле firebase.json у меня есть:

"hosting": {
    "site": "sso-login",
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/main/**",
        "function": "main"
      },
      {
        "source": "**",
        "destination": "index.html"
      }
    ]
  }

Я запускаю все приложение локально в симуляторе firebase.

Теперь, когда я звоню

https://localhost:5100/main/getuser Or https://localhost:5100/main/getuser/

В консоли симулятора написано Beginning execution of "main" - и дальше ничего не происходит.

Если я удаляю перезаписи из firebase.json, я получаю простую ошибку 404.

Как мне заставить мои функции setuser/getuser работать?


person Swissdude    schedule 24.02.2020    source источник
comment
Вы пытались удалить перезапись и выполнить запрос к localhost:5100/getuser?   -  person rpereira15    schedule 24.02.2020
comment
Да. Тогда я получаю только 404   -  person Swissdude    schedule 24.02.2020
comment
Если кажется, что эмулятор не работает для очень ясного и простого варианта использования, вы можете опубликовать проблему в проекте GitHub. Убедитесь, что ваш Firebase CLI обновлен, и включите полные инструкции о том, как дублировать. github.com/firebase/firebase-tools   -  person Doug Stevenson    schedule 24.02.2020


Ответы (1)


вы должны отправить ответ в HTTP-функциях firebase. симулятор застрял, вероятно, из-за комментария к строкам ответа. вы можете прочитать в документах https://firebase.google.com/docs/functions/http-events

person Ron Nagar    schedule 24.02.2020
comment
Ну, это я тоже пробовал. -> res.send('ответ'); - все еще время ожидания симулятора истекло. - person Swissdude; 24.02.2020
comment
Кажется, это вообще не проблема. Очевидно, что в обоих маршрутах есть строка кода для отправки ответа. - person Doug Stevenson; 24.02.2020
comment
@DougStevenson - я отредактировал свой вопрос. Эта строка была закомментирована ранее. Но раскомментировать это не помогло. - person Swissdude; 24.02.2020