firebase事件是否经过base64编码?

vnjpjtjt  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(152)

我引用示例here来过滤掉重复的事件。我看到事件id包含=/字符。事件ID base64是否编码?如果在id中发现斜杠/,则文档路径有时会成为嵌套集合,这会产生问题。但令我惊讶的是,我无法对它们进行Base64解码。
例如,我可以跟踪的- 2 id是-LJ79W2cT0inTJbzFEHH/Aw3i10M=IQUaGYPQpdYZw3mT3dHRca/Q7tU=

3mpgtkmj

3mpgtkmj1#

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

bxjv4tth

bxjv4tth2#

不能直接使用触发器的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)
    })

相关问题