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

Я новичок в firebase и пытаюсь сделать простые облачные функции + экспресс-пример из видео ниже для работы.
https://www.youtube.com/watch?v=LOeioOKUKI8

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

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

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

⚠ Создан экземпляр "firebase-admin" по умолчанию!
i функции: Закончено "app" за ~ 1 с
[хостинг] Перезапись / отметка времени на 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()}`);
});

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

Ответы [ 2 ]

1 голос
/ 15 мая 2019

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

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

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

ОБНОВЛЕНИЕ:

'firebase-tools' былобновлено.Если вы обновили свою версию с ошибками 6.9.2 до 6.10.0, проблема была исправлена.

Для обновления последних Firebase-инструментов:

npm i -g firebase-tools
0 голосов
/ 15 мая 2019

У меня такая же проблема, как и у вас.И я исправляю это, возвращая firebase-tools к 6.8.0, и проблема решается!

npm install --global firebase-tools@6.8.0

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

...