使用Firebase函数中的一个函数更新多个数据

时间:2019-07-12 08:57:08

标签: typescript firebase firebase-realtime-database google-cloud-functions

我正在制作一个用户积分系统应用程序,现在我正试图制作一个函数,只要该函数被调用一次,所有用户积分就会增加10%。

我尝试使用实时数据库触发方法,他们要求用户创建,写入,删除或更新数据库才能触发功能。

export const userVerification = functions.database.ref('/Users/{userId}')
.onUpdate((change, context)=>{
    const before = change.before.val()
    const after = change.after.val()
    if (updatePoints(before.points) === after.points) {
        console.log("BEFORE TEXT: " + before.points)
        console.log("AFTER TEXT: " + after.points)
        console.log("Points didn't change")
        return null
    }
    console.log("BEFORE TEXT: " + before.points)
    console.log("AFTER TEXT: " + after.points)
    const points = updatePoints(after.points)
    return change.after.ref.update({points})
})

[这是我用来更新积分的功能]

function updatePoints(points: string): string {
    const floatPoints: number = parseFloat(points);
    const totalPoints = (floatPoints + floatPoints * 0.1).toFixed(2);
    console.log(totalPoints)
    return totalPoints
}

我是否可以使用Firebase Function调用一次方法,让该函数增加我所有的用户点?

1 个答案:

答案 0 :(得分:0)

使用 https on call 功能似乎是您的解决方案。您可以创建类似于现在的功能,但是不必依靠数据库更改即可运行它-您可以直接从前端调用它。

Check this out for more information

您还可以执行分批写入,它允许您定义多个数据库引用,这些引用将对数据库执行写入操作,然后一次执行所有操作。

More info here