javascript - 如何在 firebase 实时数据库中使用更新值?
问题描述
所以我现在正在使用 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}
,因此无法将其存储在正确的位置。有人有什么建议吗?
change()
功能是:
function change(data:string):string {
return data.replace(/\bhappy-birthday\b/g, '')
}
这是 Firebase 节点图片: Firebase 节点设置
所以我想用我的云函数更改 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});
})
在您的云功能中,您将能够通过以下方式获取路径值
const user = context.params.user;
const message = context.params.message;
然后构建所需的节点引用。
正如您在文档中所读到的:
您可以通过用大括号括起来将路径组件指定为通配符;
ref('foo/{bar}')
匹配/foo
. 这些通配符路径组件的值在函数的 EventContext.params 对象中可用。在此示例中,该值可用作 event.params.bar。
推荐阅读
- r - 根据R中的日期绘制数据闪亮
- c++ - GCC/Clang 编译器如何决定符号类型?
- python - 机器人框架关键字创建映射到 python 类结构
- mysql - 如何在 MySQL 的存储过程中向用户授予权限?
- python - 无法在 Keras 中将 ModelCheckpoint 与 MobileNet 一起使用
- ruby-on-rails - Ruby 中的 IBM Watson NLU
- ruby-on-rails - wicked_pdf 在生产服务器中不起作用
- jquery - 过渡不适用于 height:0px
- python - 从另一个数组中的一个numpy数组中获取值的频率
- javascript - 从 api 调用获取数组以填充状态