Решение, которое я даю вам, заключается в том, что вы используете транзакции, но независимо от этого, они работают одинаково ... List<dynamic> list = List.from(documentSnapshot.data['uids']);
list.add(uid);
await documentTransaction.update(
postRef,
<String, dynamic>{
'counter': documentSnapshot.data['counter'] + 1,
'uids': list,
},
);