我正在制作一个用户积分系统应用程序,现在我正试图制作一个函数,只要该函数被调用一次,所有用户积分就会增加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调用一次方法,让该函数增加我所有的用户点?
答案 0 :(得分:0)
使用 https on call 功能似乎是您的解决方案。您可以创建类似于现在的功能,但是不必依靠数据库更改即可运行它-您可以直接从前端调用它。
Check this out for more information
您还可以执行分批写入,它允许您定义多个数据库引用,这些引用将对数据库执行写入操作,然后一次执行所有操作。