updateUserFCMToken method

Future<void> updateUserFCMToken(
  1. String token
)

Implementation

Future<void> updateUserFCMToken(String token) async {
  if (_currentUserId is String) {
    try {
      /// Check for same token
      final tokens = state.value?.attachedFCMTokens?.values
              .map((e) => e.token)
              .toList() ??
          [];
      if (tokens.contains(token)) {
        return;
      }

      final fcmToken = FCMToken(
        token: token,

        /// Add platform check
        type: FCMTokenType.Ios,
        createdAt: DateTime.now().millisecondsSinceEpoch.toDouble(),
      );
      await this
          ._userMessagingService
          .updateUserFCMToken(_currentUserId!, fcmToken);
    } catch (err) {
      /// Restore data
      throw err;
    }
  } else {
    _log.logCustom(UserMessagingRepositoryLog(
        'updateUserFCMToken() - _currentUserId is not a String'));
  }
}