我在一个使用 Firebase 的项目中调用 Google Books API,代码与这篇文章类似。
但是,我遇到了生产问题。当我在本地尝试这个时,我可以连接到Google Books API
没问题,但它在生产中一直失败,500 error
我得到的唯一细节是:
{"error":{"message":"INTERNAL","status":"INTERNAL"}}
有什么想法我应该在这里尝试吗?我已将我的 API 密钥设置为在开发人员的控制台中不受限制并且卡住了。
这是我来自 firebase 的云调用:
export const getGoogleBooks = functions.https.onCall(
async function(data: any, context: functions.https.CallableContext) {
const query: string = data.query;
console.log(`Received query loud and clear: ${query}`);
try {
const res = await fetch(`https://www.googleapis.com/books/v1/volumes?q=${query}&key=xxxx`);
const json = await res.json();
return json;
} catch(err) {
throw new functions.https.HttpsError("internal", 'Failed to search books online');
}
}
);
这是我的 API 密钥权限在 Google 控制台中的样子:
当我在本地、Postman 或浏览器中尝试它们时,我的请求似乎很好,但在生产中我收到了上面提到的错误消息。