gpt4 book ai didi

firebase - Firebase 的云函数,事务操作已完成,状态为 : 'timeout'

转载 作者:行者123 更新时间:2023-12-02 19:19:27 27 4
gpt4 key购买 nike

事务操作函数超时。我无法找出问题所在。我不确定这是否是 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 SDK 存在问题,解决方法是添加 .then(()=>{console.log('message');}); 修复超时问题。

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;
}
}).then(()=>{console.log('message');});

关于firebase - Firebase 的云函数,事务操作已完成,状态为 : 'timeout' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43645440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com