【发布时间】:2018-10-16 17:12:18
【问题描述】:
我有两个 Firebase 触发器 increaseCount 和 reductionCount 分别用于 onCreate 和 onDelete 事件。
场景:
当用户喜欢客户端上的某些内容时,会在 firebase 数据库中创建一个新路径,并且会触发 onCreate 触发器。然后计数会像我预期的那样递增。
当用户“不喜欢”客户端上的某些内容时,firebase 数据库中的路径会被删除,并且会触发 onDelete 触发器。然后计数递减。
问题:
当用户很快喜欢某样东西然后又不喜欢某样东西时,创建新路径和删除现有路径的请求几乎同时发送到 Firebase。
有时 onDelete 触发器会在 onCreate 触发之前触发。
我真的很想了解这里的最佳做法或任何人过去遇到类似情况的经历。
这是我的 onCreate 和 onDelete 函数的淡化版本
exports.increaseCount = functions.database.instance(dbInstance).ref('/path/to/existingPath')
.onCreate((snap, context) => {
ref.transaction(function(count) {
return (count || 0) + 1;
}
});
exports.decreaseCount = functions.database.instance(dbInstance).ref('/path/to/newPath').onDelete((change, context) => {
dbRef.transaction(function(count) {
if(count && (count > 0)){
var newCount = count - 1;
return newCount;
} else {
return 0;
}
}
});
【问题讨论】:
标签: firebase firebase-realtime-database google-cloud-functions