【发布时间】:2017-09-24 12:29:12
【问题描述】:
事务操作的函数超时。我无法找出问题所在。我不确定这是否是 firebase 的问题。
exports.ComputeUserReviews = functions.database.ref("/reviews/{userid}/{jobid}").onWrite((event) => {
const userid = event.params.userid;
const parentRefPromise = admin.database().ref(`reviews/${userid}`).once('value');
const UserReviewRef = admin.database().ref(`users/${userid}/account`);
return Promise.all([parentRefPromise]).then(results => {
const userReviewSnapshot = results[0];
const hasreviewPromise = UserReviewRef.child("hasreview").transaction(current => {
if (userReviewSnapshot.numChildren() === 0) {
return false;
} else if (userReviewSnapshot.numChildren() > 0) {
return true;
}
});
const reviewcountPromise = UserReviewRef.child("reviewcount").transaction(current => {
if (event.data.exists() && !event.data.previous.exists()) {
return (current || 0) + 1;
} else if (!event.data.exists() && event.data.previous.exists()) {
return (current || 0) - 1;
}
});
return Promise.all([hasreviewPromise, reviewcountPromise]);
});
});
【问题讨论】:
-
根据这个问题,firebase 存在问题,我不确定这个问题是否会影响我的功能stackoverflow.com/questions/43151022/…
-
您是否尝试过其他帖子中的解决方案?成功了吗?
-
不,它没有工作,它仍然超时。尝试过:` const IncrementProposalJob = new Promise(function(resolve, reject) { jobRef.transaction(current => { return (current || 0) + 1; }, () => resolve(null)); }); `
-
我们是否应该忽略这个错误并等待它修复?
-
我正在自己的一些项目中积极使用这种解决方法。但它最终应该得到解决。
标签: firebase firebase-realtime-database google-cloud-functions