【发布时间】:2018-06-28 15:17:32
【问题描述】:
我使用 firebase 托管 是为了使用 node js API 获取谷歌电子表格数据。如果我获取 1000 行,它工作得很好,但是当我获取 10000 时,它给我错误 Error: could not handle the request。
下面是 1000 请求的 url https://us-central1-valuemyplace-1525346661329.cloudfunctions.net/app/spreadsheet
下面是10000请求的url https://us-central1-valuemyplace-1525346661329.cloudfunctions.net/app/test
这是我的代码
function listMajors(auth) {
const sheets = google.sheets({version: 'v4', auth});
sheets.spreadsheets.values.get({
spreadsheetId: '1Lpbx-LQQTh-lF2E1lQmPnqZhvT2bWfQ9gxBX-qGBz_M',
range: 'A1:P120933',
//valueRenderOption: 'UNFORMATTED_VALUES'
//majorDimension: 'COLUMNS'
}, (err, {data}) => {
if (err) return console.log('The API returned an error: ' + err);
const rows = data.values;
if (rows.length) {
rows.map((row) => {
const zipObj = (arr1, arr2, obj) => {
if (arr1.length === 0 || arr2.length === 0) { return 0; }
obj[arr1[0]] = arr2[0];
return zipObj(arr1.slice(1), arr2.slice(1), obj);
}
const ress = [];
for (let i = 1; i < rows.length; i++) {
let obj = {};
zipObj(data.values[0], data.values[i], obj);
ress.push(obj);
}
//console.log(res);
firebase.database().ref().set(ress);
res.send(ress);
// console.log(row.length);
});
} else {
console.log('No data found.');
}
});
}
请帮我解决这个问题。提前致谢。
【问题讨论】:
-
这些 URL 看起来像是您使用的是 Cloud Functions,而不是 Firebase 托管。
-
它在本地主机上运行良好,但是当我部署到主机时它给了我错误。
-
@DougStevenson 但它适用于 1000 行请求。为什么它不适用于10000?即使它可以在 localhost 机器上运行。
-
所以这是一件有趣的事情。 1000 行的请求给了我一个错误,但是 10,000 行的请求可以正常工作。
-
@Jay 在第一个链接上我获取了 10,000 行,在第二个链接上我错误地获取了 1000 现在检查。如果你知道如何解决这个问题,请帮助我。