我想在第二种then()
方法中运行事务操作,就像
return admin.database().ref(/Posts).child(oldPostKey).transaction();
按照代码所示执行此操作是否正确?当我执行它时,Firebase控制台功能日志中没有错误,但是它确实将任何内容返回到下一个then()
方法。 admin.database().ref(/Posts).child(oldPostKey)
有多个孩子。现在,在下一个then()
方法中,我想获取子级的所有值以进行进一步处理。谁能帮我吗?
exports.newIdGenerator = functions.database.ref('/User/{fixedId}').onCreate((shot, context) => {
const fixedId = context.params.fixedId;
const totalLikeRef = admin.database().ref(`/TotalLike`).child(fixedId);
var totalAmount;
return totalLikeRef.transaction((totalLike) => {
if (totalLike !== null) {
console.log("totalLike: " + totalLike);
totalAmount = totalLike;
return totalAmount;
} else {
throw totalAmount;
}
})
.then((totalAmount) => {
return admin.database().ref(`/OldNewKey`).child(fixedId).once('value');
})
.then((oldPostKeyShot) => {
if (!oldPostKeyShot.exists()) {
oldPostKey = fixedId;
} else {
oldPostKey = oldPostKeyShot.val();
}
return admin.database().ref(`/Posts`).child(oldPostKey).transaction();
})
.then((postRefShot) => {
if (postRefShot === null) {
return null;
} else {
return postRefShot;
}
})
.catch((error) => {
return admin.database().ref().child('Send').child(fixedId).set(null);
});
)
}