Должно работать следующее:
export const getUser = functions.https.onRequest((req, res) => {
const uid = req.query.uid
corsHandler(req, res, () => {
admin.firestore().collection('profiles').doc(uid).get()
.then(snapshot => {
console.log(snapshot.data())
res.send('OK')
})
.catch(err => {
console.error('ERROR:', err)
res.status(500).send(err)
})
})
})
Обратите внимание, что, имея
functions.database.ref(`/profiles/{profileId}`).onUpdate()
в вашей функции onUpdate
:
1 / Вы используете синтаксис для базы данных реального времени, а не для Firestore;
2 / Вы устанавливаете обработчик события в облачной функции, которая уже запускается через событие (являющееся здесь вызовом URL-адреса облачной функции HTTPS).
В вашей облачной функции HTTPS вы должны просто использовать метод Firestore get()
для чтения из базы данных. Нет необходимости устанавливать другой обработчик событий или любой прослушиватель: «одноразовое» чтение / запрос к базе данных, выполненное с get()
, будет запускаться при каждом вызове функции HTTPS.
Вы можете посмотреть это официальное видео: https://www.youtube.com/watch?v=7IkUgCLr5oA.