Я использую интеграцию 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'
}
🤔 А знаете ли вы, что...
JavaScript позволяет создавать асинхронные запросы к серверу с помощью технологии AJAX.
Какую версию Node вы используете? У меня была такая же проблема с последней версией 22.7.0, и я понизил ее до той, которую использовал раньше, 22.5.0. Это сработало.
Пожалуйста, проверьте также проблему, которую я подал здесь:
https://github.com/nodejs/node/issues/54518