identify method

  1. @override
Future<RawEvent?> identify(
  1. IdentifyEvent event
)
override

Implementation

@override
Future<RawEvent?> identify(IdentifyEvent event) async {
  if (event.userId != null) {
    await FirebaseAnalytics.instance.setUserId(id: event.userId!);
  }
  if (event.traits != null) {
    await Future.wait(event.traits!.toJson().entries.map((entry) async {
      /// Firebase has a limit of 64 characters for user properties
      if (entry.value.toString().length <= 64) {
        await FirebaseAnalytics.instance
            .setUserProperty(name: entry.key, value: entry.value.toString());
      } else {
        log(
          '[FirebaseAnalytics Error: UserPropertyValueTooLong] User property "${entry.key}" exceeds the maximum length of 64 characters.',
          kind: LogFilterKind.error,
        );
      }
    }));
  }
  return event;
}