我正在尝试在Firebase Cloud Function中从Firestore控制台文档。有人可以帮助我提供代码吗?
export const getUser = functions.https.onRequest((req, res) => {
const uid = req.query.uid
corsHandler(req, res, () => {
onUpdate(res, uid)
})
})
function onUpdate(res, uid) {
functions.database.ref(`/profiles/{profileId}`).onUpdate((change, context) => {
const profileId = uid
console.log('BEFORE: ', change.before.val())
res.send('OK')
})
}
答案 0 :(得分:2)
以下方法应该起作用:
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 /您正在在Cloud Function中设置一个事件处理程序,该事件处理程序已通过事件触发(这里是对HTTPS Cloud Function URL的调用)。
在HTTPS Cloud Function中,您只需使用Firestore get()
方法即可从数据库中读取数据。无需设置其他事件处理程序或任何侦听器:每次调用HTTPS函数时,将触发使用get()
完成的“一次”数据库读取/查询。
您可以观看以下官方视频:https://www.youtube.com/watch?v=7IkUgCLr5oA。