syncLocalEntriesWithFirestore method
- UserCredential userCredential
Syncs the latest 10 remote entries to local storage on first login.
This is useful when the local DB is empty (e.g., after a fresh install).
Implementation
Future<void> syncLocalEntriesWithFirestore(
UserCredential userCredential,
) async {
final userId = userCredential.user!.uid;
final localEntries = await LocalDiaryDatabase().getAllEntries(
userId: userId,
);
if (localEntries.isEmpty) {
final snapshot =
await FirebaseFirestore.instance
.collection("Users")
.doc(userId)
.collection("diary_entries")
.orderBy("date", descending: true)
.limit(10)
.get();
for (final doc in snapshot.docs) {
final data = doc.data();
final entry = DiaryEntry.fromMap(doc.id, data);
await _localDb.insertEntry(entry, userId, data['location'] ?? '');
}
}
}