以下场景:
创建一个测验应用程序。每当用户结束测验时,他的分数就会更新。在此更新中,firebase 函数更新了所有用户的排名:
exports.onMessageCreate = functions.firestore
.document('users/{userId}')
.onUpdate((change, context) => {
var test= admin.firestore().collection('users');
test.orderBy('totalScore', 'desc').get().then(querySnapshot => {
var rank = 1;
querySnapshot.forEach(user => {
user.ref.set({globalRanking: rank}, {merge: true}).then(res => { });;
rank++;
});
});
return null;
});
问题是,使用 documentSnapshot.ref.set
时,用户会再次更新,因此每次完成 firebase 函数时都会再次触发。我怎样才能避免这种情况?
最佳答案
当用户结束测验时,他会更新或推送到不同的节点。 该函数监视该节点并更新所有用户排名
关于javascript - 如何避免 firebase 函数递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54808017/