我有一个firebase功能,如下所示
Windows: ctrl + F5
Mac/Apple: Apple + R or command + R
Linux: F5
它正在使用firebase实时数据库,该数据库具有以下节点:
每次根据图像中的结构插入新值时,此函数都会触发。我遇到的问题是,当创建一个新节点时,正在成功检索'sharedBenefits'的值,而不是快照的其他子值。日志的输出按照此处的图像输出。
我无法弄清楚为什么我无法检索快照的这些Child值。非常感谢任何帮助。
仅供参考,编写到数据库的代码在Java for Android中,如下所示:
exports.shareNotifyNCoin = functions.database.ref('{userID}/mySharedImages/{postID}')
.onCreate(event => {
const userID = event.params.userID
const postID = event.params.postID
const createdAt = postID.slice(0,15)
const sharedBenefits = event.data.child('sharedBenefits').val()
const sharedOnFaceBook = event.data.child('facebook').val()
const sharedOnTwitter = event.data.child('twitter').val()
const sharedOnPinterest = event.data.child('pinterest').val()
const createdByPic = event.data.child('myPhotoUrl').val()
console.log('myPhotoUrl is :' + createdByPic)
console.log('sharedBenefits is : ' + sharedBenefits)
console.log('facebook is:' + sharedOnFaceBook)
console.log('twitter is: ' + sharedOnTwitter)
console.log('pinterest is: ' + sharedOnPinterest)
}
答案 0 :(得分:1)
我相信当您在setValue
节点shareUrl
{userID}/mySharedImages/{postID}
作为该节点的onCreate
触发器时,您所编写的云功能会被触发,此时没有其他值设置,这就是为什么错误。
您应该尝试使用扇出技术同时上传所有值或将整个对象更新为单个值。
有关扇出技术的更多信息here