verifyFirebaseUser method

Future<void> verifyFirebaseUser()

Implementation

Future<void> verifyFirebaseUser() async {
  try {
    UserCredential userCredential = await getFirebaseUser();

    UserData userData = UserData();
    userData.id = appStore.userId;
    userData.email = appStore.userEmail;
    userData.firstName = appStore.userFirstName;
    userData.lastName = appStore.userLastName;
    userData.profileImage = appStore.userProfileImage;
    userData.updatedAt = Timestamp.now().toDate().toString();

    /// Check email exists in Firebase
    /// If not exists, register user in Firebase,
    /// If exists, login with Firebase
    /// Redirect to Dashboard

    /// add user data in Firestore
    userData.uid = userCredential.user!.uid;

    bool isUserExistWithUid = await userService.isUserExistWithUid(userCredential.user!.uid);

    if (!isUserExistWithUid) {
      userData.createdAt = Timestamp.now().toDate().toString();
      await userService.addDocumentWithCustomId(userCredential.user!.uid, userData.toFirebaseJson());
    } else {
      /// Update user details in Firebase
      await userService.updateDocument(userData.toFirebaseJson(), userCredential.user!.uid);
    }

    /// Update UID & Profile Image in Laravel DB
    //updateProfile({'uid': userCredential.user!.uid});

    await appStore.setUId(userCredential.user!.uid);
  } catch (e) {
    log('verifyFirebaseUser $e');
  }
}