Я хочу запустить операцию транзакции во втором методе 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);
});
)
}