我正在使用 Google Cloud Run Firestore 集成,直到最近它都运行良好。虽然我能够进行身份验证,但我无法执行任何 CRUD 操作。
这只发生在 Google Cloud Run 实例上,但当我本地连接到同一数据库(使用服务帐户)时不会发生。
错误是:
2024-08-23 10:19:55.857 CEST
Caused by: Error
2024-08-23 10:19:55.857 CEST
at Firestore.getAll (/home/node/app/node_modules/@google-cloud/firestore/build/src/index.js:1007:23)
2024-08-23 10:19:55.857 CEST
at DocumentReference.get (/home/node/app/node_modules/@google-cloud/firestore/build/src/reference/document-reference.js:180:32)
2024-08-23 10:19:55.857 CEST
at compareCredentials (file:///home/node/app/auth.js:55:40)
2024-08-23 10:19:55.857 CEST
at authenticate (file:///home/node/app/auth.js:200:16)
2024-08-23 10:19:55.857 CEST
at postAuthAdmin (file:///home/node/app/routes.js:354:37)
2024-08-23 10:19:55.857 CEST
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
2024-08-23 10:19:55.857 CEST
at async Server.server (file:///home/node/app/server.js:173:15) {
2024-08-23 10:19:55.857 CEST
code: 'ERR_BUFFER_OUT_OF_BOUNDS'
2024-08-23 10:19:55.857 CEST
}
代码:
const firestore = new Firestore({ databaseId: 'projecttest' })
const credsColl = firestore.collection('creds')
const adminCredsDoc = credsColl.doc('admin')
const adminDoc = await adminCredsDoc.get() // ERR_BUFFER_OUT_OF_BOUNDS
我试图获取的文档(密码是伪造的):
{
user: 'admin',
password: '$2a$12$kHkqVa3fHz7qRBpv5BSPCOjci1H77AGHNXsReL3Huw9vITk5lqcXG'
}
您运行的是哪个版本的 Node?我在最新版本 22.7.0 中遇到了同样的问题,并降级到我之前使用的版本 22.5.0。那行得通。
另请检查我在这里提交的问题: