繁体   English   中英

如何在Firebase实时数据库中使用更新值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM