使用Flutter实现Firebase社交登录时,遇到通过Apple登录后用户凭证为空等问题

问题描述 投票:0回答:1

在使用 Flutter 实现 Firebase 社交登录时,特别是与 Apple 集成登录时,我遇到了通过 Apple 登录后返回的用户凭据为空的问题。尽管身份验证成功,但用户数据似乎丢失或不完整。如何有效排查并解决此问题?此外,在使用 Flutter 实现 Firebase 社交登录时,尤其是在 Apple 这样的平台上,是否有任何具体的注意事项或最佳实践?

这是我的数据源

    @override
    Future<UserCredential> signInWithApple() async {
    await checkNetwork(networkInfo);
    try {
      final appleProvider = AppleAuthProvider();
      appleProvider..addScope('email')
        ..addScope('name');

      UserCredential userCredential = await firebaseAuth.signInWithProvider(appleProvider);

        return userCredential;

    } on FirebaseAuthException catch (error) {
      throw GeneralError(title: 'Apple Sign-In', message: error.message);
    } catch (error) {
      throw GeneralError(
          title: "Apple Sign-In", message: "Some thing went wrong",stackTrace: error.toString());
    }
    }

这是我的 getxcontroller 方法


     Future<void> loginWithApple(BuildContext context) async {
     appleLoadingState = LoadingState.loading;
     update([updateEmailScreen]);

     await authenticationSource.signInWithApple().then((userCredential) {
    
      isLoggedIn = true;
      customError = null;
      user = userCredential.user;
      email = null;
      password = null;
      Get.back();
      update();
      appleLoadingState = LoadingState.loaded;
      update([updatedAuthWrapper, updateEmailScreen]);
      }).onError<CustomError>((error, stackTrace) {
      user = null;
      customError = error;
      appleLoadingState = LoadingState.loaded;
      update([updatedAuthWrapper, updateEmailScreen]);
      getErrorDialog(error);
      });
      }

我尝试了上面的代码,但我得到的凭据是空的。

flutter firebase firebase-authentication
1个回答
0
投票

您似乎遵循了错误的 Firebase 身份验证文档。如果您在 Flutter 中进行开发,那么它将与 FirebaseAuth 一起使用。

这是链接-

https://firebase.google.com/docs/auth/flutter/start

如果您仍然需要帮助,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.