我正在尝试从数据库中的某个位置获取一个值,然后向其添加1并将其重新设置,但是最新的错误是
TypeError: Cannot read property 'update' of undefined
at admin.database.ref.once.then (/user_code/lib/index.js:22:25)
不确定为什么要尝试将其读取为我认为是一种方法的属性?我的整个方法就是这个
admin.database().ref('users/' + senderId + '/contacts/' + recipientId)
.once('value').then((contactSnapshot) => {
var mContact = contactSnapshot.val()
let unread = mContact['unread']
console.log('contact name is ' + mContact['user_name'] + ' unread count is ' + unread)
unread++
var contactReference = mContact.ref
contactReference.update({'unread' : unread})
})
我的控制台日志可以很好地打印联系人姓名和未读计数,但我在Java脚本(实际上是类型脚本)上几乎没有用,我会在此感谢任何帮助
答案 0 :(得分:1)
mContact = contactSnapshot.val()
返回所查询数据库位置的原始javascript值。它不包含其他参考对象。除非您在该位置的数据库中有一个名为ref
的键值,否则mContact将没有ref
属性。
听起来您想改contactSnapshot.ref
。或者只是记住您最初构建它时的引用:
const contactReference = admin.database().ref('users/' + senderId + '/contacts/' + recipientId)