Я пытаюсь добавить два документа в две разные коллекции.
скажем, coll1 & coll2.
Я добавляю документ в coll1 => Я получаю идентификатор документа, который мне нужен чтобы установить его для документа coll2 в качестве идентификатора, я могу просто написать два добавления, но я пытаюсь выполнить их в транзакции, чтобы в случае сбоя одного из них оба потерпели неудачу.
Я не смог этого сделать, используя эта ссылка
Ниже приведен код, который я должен преобразовать в пакеты:
await db.runTransaction(
async function (transaction) {
const coll1 = {
text: 'This is collection 1 text',
}
const coll1Doc = await db
.collection('coll1')
.add(coll1)
// I tried transaction.set(db.collection('coll1').doc(), coll1) but this doesn't return the doc or the docId which we need in the next step.
// Similay batch.set is also not returning the newly added/edited doc or its Id.
if (coll1Doc && coll1Doc.id) {
const coll1Id = coll1Doc.id
const coll2 = {
text: 'This is collection 2 text',
}
await db
.collection('coll2')
.doc(coll1Id)
.set(coll2)
}
}
)