问题
I have a simple firebase function which is reading a very small amount of data (less than 1kb) but it is taking nearly 2 seconds to complete and has a warning in the logs FIREBASE WARNING: Invalid query string segment:
The result is 200 OK, however something strange is clearly going on, a
import express from 'express';
import * as functions from "firebase-functions"
const cors = require('cors')();
const api = express();
const getJob = async (req, res) => {
const { organisation, job } = req.params
console.log("READING", req.params)
console.log("one", `careers/jobs/${organisation}/${job}`)
const jobContent = await admin.database().ref(`careers/jobs/${organisation}/${job}`).once("value")
if (!jobContent) {
res.sendStatus(404)
}
console.log("two")
const descriptionContent =await admin.database().ref(`careers/descriptions/${organisation}/${job}`).once("value")
return res.send({
...jobContent.val(),
description: descriptionContent && descriptionContent.val()
})
}
api.use(cors);
api.get('/careers/:organisation/jobs/:job', getJob)
export const careersApi = functions.https.onRequest(api)
firebase.json
{
"functions": {
"source": "build"
},
"hosting": {
"public": "public",
"rewrites": [
{
"source": "/careers/**",
"function": "careersApi"
}
]
}
}
回答1:
The Invalid query string segment warning looks like a recently introduced bug which will hopefully be fixed soon.
来源:https://stackoverflow.com/questions/48832566/slow-running-firebase-function-with-invalid-query-string-segment