Облачные функции Firebase повторного развертывания Ошибка: не удалось обработать запрос (при использовании firestore и googleapis) - PullRequest
0 голосов
/ 29 июня 2018

У меня есть облачная функция Firebase, которая становится недоступной примерно на 30 секунд после каждый раз, когда повторно развертывается . В течение 30 секунд возвращается 500 Error: could not handle the request. Примерно через 30 секунд он работает нормально.

Я сократил функцию до простого примера, который воспроизводит ошибку. Кажется, ошибка возникает, когда требуется googleapis и функция делает запрос в firestore. Удаление оператора googleapis require или , запрос пожарного депо устраняет ошибку.

googleapis или firebase-admin не совместимы с облачными функциями? Как я могу написать функцию, которая использует оба?

index.js

const functions = require('firebase-functions');
const express = require('express');
const admin = require('firebase-admin');
const pack = require('./package.json');
const {google} = require('googleapis');

admin.initializeApp();

const app = express();
app.post('/', (req, res) => {
  const name = req.body.name || 'unknown';

  admin.firestore().doc('settings/doesnotexist').get()
    .then(ref => {
      res.send({
        message: `Hello ${name}. Exists: ${ref.exists}`,
        version: pack.version,
      });
    });
});

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

package.json

{
  "version": "0.1.56",
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions:testDeployCody",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "express": "^4.16.3",
    "firebase-admin": "^5.12.1",
    "firebase-functions": "^1.1.0",
    "googleapis": "^30.0.0",
    "lodash": "^4.17.10"
  },
  "devDependencies": {
    "firebase-tools": "^3.19.1"
  }
}

Шаги для воспроизведения:

  1. Развернуть облачную функцию (я использую npm run deploy)
  2. Проверка работоспособности функции через HTTPS
  3. Увеличение пакета. Json версия
  4. Повторно развернуть функцию
  5. После того, как инструменты firebase сообщат Deploy Complete!, несколько раз протестируйте функцию через HTTPS, чтобы увидеть сообщение об ошибке
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...