follow method
Records that followerId is following targetId.
Implementation
@override
Future<void> follow({
required String followerId,
required String targetId,
}) async {
try {
final batch = _firestore.batch();
final now = FieldValue.serverTimestamp();
// users/{targetId}/followers/{followerId}
// users/{followerId}/following/{targetId}
// Root collection for cross-user queries.
batch
..set(_followersDoc(targetId, followerId), {
'followerId': followerId,
'createdAt': now,
})
..set(_followingDoc(followerId, targetId), {
'targetId': targetId,
'createdAt': now,
})
..set(_followsCollection().doc('${followerId}_$targetId'), {
'followerId': followerId,
'targetId': targetId,
'createdAt': now,
});
await batch.commit();
} catch (error) {
throw Exception(
'FirebaseFollowSource.follow failed '
'($followerId → $targetId): $error',
);
}
}