gpt4 book ai didi

Firebase 云函数使用当前值而不是最初调用函数时的值

转载 作者:行者123 更新时间:2023-12-02 05:05:13 25 4
gpt4 key购买 nike

不确定这是否可以通过 Firebase 云功能实现。

假设,我想在特定集合中的所有文档上触发云函数 onCreate。创建后,云函数应在不同的集合中添加另一个文档。从手动创建的文档传递值。

当然,这有效!:

export const createAutomaticInvoice = functions.firestore.document('users/{userId}/lessons/{lesson}').onCreate((snap, context) => {

let db = admin.firestore();
let info = snap.ref.data()

db.collection('toAdd').add({
info: info
})


})

但是如果我在 users/{userId}/lessons/ 中创建一个文档,然后直接更改 info 的值,在触发云功能之前,云函数采用 info 的旧值作为其更改后的值。

这是预期的行为吗?对我来说,这绝对不是我所假设的那样,它在运行时获取值。

如何使我的示例按预期工作?

最佳答案

这是预期的行为 - 该函数将在创建该文档后尽快执行。快照始终包含文档最初创建时的内容。它不会等待查看该文档在未来某个时刻是否发生更改,也不会尝试查询该文档以防其发生更改。

如果您想处理文档的更新,您还应该使用 onUpdate 触发器来了解是否会发生这种情况。

关于Firebase 云函数使用当前值而不是最初调用函数时的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57892702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com