firebase事件是base64编码的吗



我在这里引用了这个例子来过滤掉重复的事件。我看到事件id包含=/字符。事件id是否已编码为base64?如果在id中发现斜杠/,这有时会产生问题,因为文档路径会变成嵌套集合。但令我惊讶的是,我无法对它们进行base64解码。

例如,我可以跟踪的-2 id是-LJ79W2cT0inTJbzFEHH/Aw3i10M=IQUaGYPQpdYZw3mT3dHRca/Q7tU=

我不认为云函数中的事件ID有任何定义。您应该将它们视为不透明字符串,不要对它们的内容或内容的含义做出任何假设,如果您多次获得相同的事件ID,则它们表示相同的事件。

不能直接使用触发器的EventId作为文档ID,因为它可以包含斜杠。

你应该先去掉斜线:

exports.onGoodsUpdate = functions
.database
.ref("goods/{id}")
.onUpdate((change, context) => {
const data = change.after.val() as Goods
const repository = new GoodsReportRepository()
const report: GoodsReport = {
id: context.eventId.replace("/", ""),
groupCode: data.code,
}
return repository.save(report)
})

相关内容

  • 没有找到相关文章

最新更新