我有一个Firebase Cloud功能,在重新部署后,在大约30秒钟后无法到达。在30秒内,它返回 500 Error: could not handle the request
。大约30秒后,它会正常运行。
我已将该函数简化为一个简单的示例,该示例再现了该错误。当需要googleapis
并且该函数向firestore查询时,似乎发生了错误。 删除googleapis
require语句或 firestore查询可消除该错误。
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"
}
}
复制步骤:
npm run deploy
)Deploy Complete!
之后,通过HTTPS反复测试该功能以查看错误消息