[英]Firebase realtime:How to update particular value of child in Firebase Database javascript
[英]How to update a value using in firebase realtime database?
因此,我目前正在使用Cloud Functions。 我在做什么是这样的:
export const onMessageCreate = functions.database.ref('/Users/{user}/{message}/{text}').onCreate((snapshot, context) => {
const data = snapshot.val()
const changedData: string = change(byteData.text)
return snapshot.ref.update({id: compressedByteData}) //This is the problem
})
change(input: string): string
是我的自定义函数,仅用生日蛋糕表情符号替换生日快乐一词的所有出现。 但是,在我的参考文件中,看起来像这样: "/Users/{user}/master/{messageGroup}/content/{message}"
我想更新text的值。 但是,由于我不知道{text}
是什么,因此无法将其存储在正确的位置。 有人有建议吗?
change()
函数为:
function change(data:string):string {
return data.replace(/\bhappy-birthday\b/g, '🎂')
}
这是Firebase节点图片: Firebase节点设置
所以我想用我的Cloud Functions更改01、02、03(值无关紧要)。
根据您的评论的新更新:
如果我能正确理解您的最后评论,则可以做到这一点:
export const onMessageCreate = functions.database.ref('/Users/{user}/master/{messageGroup}/content/{message}').onCreate((snapshot, context) => {
const data = snapshot.val();
const changedData: string = change(byteData.text);
const user = context.params.user;
const messageGroup = context.params.messageGroup;
return admin.database().ref(`/Users/${user}/master/${messageGroup}/content`).update({4f3f: changedData});
})
根据您的评论进行更新:
抱歉,但不是100%清除您要更新的内容。
如果您想“更改/Users/{user}/master/{messageGroup}/content/{message}
的值,当您在/Users/{user}/master/{messageGroup}/content/{message}
“,其值为changedData
,只需执行以下操作:
export const onMessageCreate = functions.database.ref('/Users/{user}/master/{messageGroup}/content/{message}').onCreate((snapshot, context) => {
const data = snapshot.val();
const changedData: string = change(byteData.text);
return snapshot.ref.update({message: changedData});
})
在您的Cloud Function中,您将可以通过以下操作获取路径值
const user = context.params.user;
const message = context.params.message;
然后构建所需的节点引用。
如您在文档中所读:
您可以使用大括号将路径组件指定为通配符。
ref('foo/{bar}')
匹配/foo
任何子级。 这些通配符路径组件的值在函数的EventContext.params对象中可用 。 在此示例中,该值可作为event.params.bar使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.