Функции onCall работают очень по-разному в функциях onRequest. Прочтите документацию , чтобы понять, как их написать.
Вызываемые функции не используют объекты запроса и ответа. Они принимают два аргумента, аргумент входных данных и контекст:
export const getFeed = functions.https.onCall(async (data, context) => { ... })
Чтобы отправить ответ, вы должны вернуть обещание, которое разрешается с помощью объекта для сериализации и отправки обратно клиенту.
const querySnapshot = await admin.firestore().collection('posts').limit(10).get()
return querySnapshot.docs.map(snap => snap.data())
Они также обрабатывают Cors самостоятельно - для этого не нужно добавлять промежуточное программное обеспечение. Фактически, вы не можете использовать промежуточное программное обеспечение express с вызываемыми функциями. Вам также нужно будет вызвать их, используя предоставленный клиентский SDK. Они не будут работать с обычным HTTP-запросом. Документация объяснит это.