Rank 2: Process
I am trying to use transaction to create rows in multiple tables and update another table relationship column. but when I commit the transaction, I get The transaction has a conflict error. the strange thing is, out of the 4 tables that needed to be updated, only one got updated but it confused the column values. It updated the $createdAt and $updatedAt columns with relationship values and it updated the two custom columns with date values. I am using the dark sdk for experimenting. I have included a screenshot. ```Dart
Future createFamily() async {
final ateyibUserId = 'userId';
var tablesDb = TablesDB(client);
var userSecureInfoRow = await tablesDb.getRow(
databaseId: databaseId,
tableId: 'usersecurityinfo',
rowId: ateyibUserId,
);
final transaction = await tablesDb.createTransaction();
final tid = transaction.$id;
// create family
final familyId = ID.unique();
final result = await tablesDb.createRow(
databaseId: databaseId,
rowId: familyId,
tableId: 'family',
data: {
'name': 'The Ates',
'creator': ateyibUserId,
'memberships': [
{'role': 'admin', 'user': ateyibUserId, 'familyId': familyId},
],
},
transactionId: tid,
);
// create familyKey
final familyKeyId = ID.unique();
final family = await tablesDb.createRow(
databaseId: databaseId,
tableId: 'familyKey',
rowId: familyKeyId,
data: {'userId': ateyibUserId, 'familyId': familyId, 'key': 'familyKey'},
transactionId: tid,
);
// update user secure info
final secureInfoRows = await tablesDb.updateRow(
databaseId: databaseId,
tableId: 'usersecurityinfo',
rowId: ateyibUserId,
data: {
'families': [...familyIds, familyId],
'familyKeys': [...familyKeyIds, familyKeyId],
},
transactionId: tid,
);
// Commit
await tablesDb.updateTransaction(
transactionId: tid,
commit: true,
);
}```