Google Cloud Run Firestore: [ERR_BUFFER_OUT_OF_BOUNDS]: «длина» выходит за пределы буфера

Я использую интеграцию 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.


2
61
1

Ответ:

Решено

Какую версию Node вы используете? У меня была такая же проблема с последней версией 22.7.0, и я понизил ее до той, которую использовал раньше, 22.5.0. Это сработало.

Пожалуйста, проверьте также проблему, которую я подал здесь:

https://github.com/nodejs/node/issues/54518