logEventToFirebase static method
Implementation
static Future<void> logEventToFirebase(String key, String value) async {
try {
FirebaseApp app = Instadiv.getInstance().firebaseApp;
FirebaseFirestore firestore = FirebaseFirestore.instanceFor(app: app);
DocumentReference<Map<String, dynamic>> ref =
firestore.collection(instaCollection).doc(Cred.project);
final DocumentSnapshot snapshot = await ref.get();
if (snapshot.exists) {
Map<String, dynamic> data = snapshot.data() as Map<String, dynamic>;
Map<String, dynamic> eventMeta = data['event_meta'] ?? {};
if (eventMeta.isEmpty) {
Map<String, dynamic> newMeta = {
'event_meta': {
key: [value]
}
};
ref.update(newMeta);
} else {
List<dynamic> valueList = eventMeta[key] ?? [];
if (valueList.isEmpty || !valueList.contains(value)) {
valueList.add(value);
eventMeta[key] = valueList;
ref.update({'event_meta': eventMeta});
}
}
} else {
print('Document does not exist');
}
} catch (e) {
print('Error $e');
}
}