Я хотел бы вернуть клиенту объект Json {mesage: "это то, что я хочу вернуть"} из пакетной операции ... Чего мне здесь не хватает?
exports.addMessage3 = functions.https.onCall(async (data, context) => {
const db = admin.firestore();
const query = db
.collection('smtg')
.where('status', '==', false)
.limit(1);
return db
.runTransaction(async transaction => {
return transaction
.get(query)
.then((querySnapshot) => {
const snapshot = querySnapshot.docs[0];
if (typeof snapshot === "undefined") {
console.log('XXXXXXXX! ', snapshot);
const xyz = myFunction()
console.log('XXXXXXXXZZZZZZ! ', xyz);
return { error: "undefined" };
}
const data = snapshot.data();
console.log('LLLoooog! ', data);
transaction.update(snapshot.ref, { status: true });
return data;
})
})
.then((data) => {
console.log('Transaction successfully committed! ', data);
return data;
})
.catch((error) => {
console.log('Transaction failed: ', error);
return error;
});
});
async function myFunction() {
const db = admin.firestore();
let batch = admin.firestore().batch();
let nycRef = db.collection('smtg').doc();
batch.set(nycRef, { combination: 'ABC11', status: false });
return batch.commit().then(function () {
console.log('Batched.');
return {mesage: "this is what I want to return"}
});
}
В случае, когда снимок не определен, я бы хотел вернуть myFunction () и не вернуть {error: "undefined"}