我正在运行由firebase实时数据库更改触发的云功能并更新FireStore。但是,尽管该函数触发了,但该函数无法访问Firestore。
exports.reveal = functions.database.ref('/reveals/{postIDthatWasRevealed}/revealed').onUpdate((change, context) => {
const revealedValue = change.after.val()
if (revealedValue === true) {
var updates = {}
const postID = context.params.postIDthatWasRevealed
return admin.firestore().document('/posters/' + postID).get().then(querySnapshot => {
这时,控制台日志指出TypeError:admin.firestore(...).document is not a function at..
我已经尝试了这个答案:Tried Answer但问题仍然存在。这是否与我正在访问Firebase云功能内部的firestore有关?我的云功能是否没有正确更新?
编辑(包括初始化代码)
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
此外,我尝试通过将功能更改为来调试该功能:
if (revealedValue === true) {
var updates = {}
const postID = context.params.postIDthatWasRevealed
return admin.firestore()
现在,当我触发函数时,我得到Function execution took 811 ms, finished with status: 'ok'
因此,似乎firestore函数是有效的,只是我的语法可能已关闭或者我可能忘记了一些东西
答案 0 :(得分:3)
document()
是functions.firestore
admin.firestore()
的等效项是collection().doc()
有关更多信息,请参见Firestore: Get Data
。
admin.firestore().collection('posters').doc(postID) ...
答案 1 :(得分:3)
使用doc()
函数代替document()