Я создал админ-панель на клиенте, где я вызываю функцию в облаке, чтобы получить документы для выбранной коллекции. Запрос в функции выглядит так:
adminDb
.collection(selectedCollection)
.get()
.then(snapshot => {
if (snapshot.size === 0) throw new functions.https.HttpsError('not-found', 'No entries found')
return snapshot.docs.map(doc => {
return {
id: doc.id,
data: doc.data(),
}
})
})
В моем случае это работает для коллекции с примерно 500 записями, хотя это уже занимает много времени:
callableAdminGetDocs
Function execution started
callableAdminGetDocs
Function execution took 1298 ms, finished with status code: 204
callableAdminGetDocs
Function execution started
callableAdminGetDocs
Function execution took 4528 ms, finished with status code: 200
Запрашивая коллекцию с 1800 записями, я получаю следующую ошибку:
callableAdminGetDocs
Function execution started
callableAdminGetDocs
Function execution took 14 ms, finished with status code: 204
callableAdminGetDocs
Function execution started
callableAdminGetDocs
Function execution took 19258 ms, finished with status: 'response error'
в то время как на стороне клиента я получаю эти журналы:
POST https://us-central1-[].cloudfunctions.net/callableAdminGetDocs 502
[]:1 Access to fetch at 'https://us-central1-[].cloudfunctions.net/callableAdminGetDocs' from origin 'https://[].com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
В чем здесь проблема? Является ли общим ограничением использование такого рода административных запросов суперэффективности и, следовательно, сбой для «больших» коллекций?