Ошибка «Не удается получить» в облачных функциях Firebase + экспресс-пример

Я новичок в Firebase и пытаюсь сделать простой Cloud Functions + Express образец из видео ниже, чтобы работать.
https://www.youtube.com/watch?v=LOeioOKUKI8

Когда я пытаюсь обслужить свой index.js из http: // localhost: 5000 / timestamp , я получаю следующую ошибку.

Невозможно получить / {my-project-id} / us-central1 / app / timestamp

В моем терминале я получаю следующий вывод.

⚠ По умолчанию создан экземпляр "firebase-admin"!
я функции: закончил "приложение" в ~ 1 с
[хостинг] перезапись / timestamp на http: // localhost: 5001 / {my-project-id} / us-central1 / app для локального приложения Function

Но если я разверну, он будет работать как положено и покажет мою метку времени.

Мой текущий код ниже.

index.js

var admin = require("firebase-admin"); admin.initializeApp(); const functions = require('firebase-functions'); const express = require('express'); const app = express(); app.get('/timestamp', (request, response) => { response.send(`${Date.now()}`); }); exports.app = functions.https.onRequest(app); 

firebase.json

 { "hosting": { "public": "public", "rewrites": [{ "source": "/timestamp", "function": "app" }], "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ] } } 

Если я переписать часть моего index.js что-то вроде,

 app.get('/{my-project-id}/us-central1/app/timestamp', (request, response) => { response.send(`${Date.now()}`); }); 

он покажет мою метку времени при доступе к http: // localhost: 5000 / timestamp .
У кого-нибудь есть идеи, почему это происходит?

Всего 2 ответа


Я сталкиваюсь с той же проблемой, что и вы. И я исправляю это, возвращая firebase-tools к 6.8.0, и проблема решается!

npm install --global firebase-tools@6.8.0

Что касается ссылки: https://github.com/firebase/firebase-tools/issues/1280


Со своей стороны, я пытался разработать Rest API с облачными функциями Firebase. У меня та же ошибка. Если я нажимаю свой сервер Firebase кода через «Firebase deploy», он работает так, как я хочу. Но когда я запускаю на своем локальном сервере команду «firebase serve --only functions, hosting», всегда будет ошибка, например Cannot GET и не запускаться. Я попробовал ваш код и то же самое здесь. Я нашел смехотворно простое решение для этого и бежал на моей стороне. Не могли бы вы примерить на месте,

 app.get('*/timestamp', (request, response) => {
   response.send(`${Date.now()}`);
 });

Просто добавьте * перед вашим путем.


Есть идеи?

10000