在使用 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);
});
}
我尝试了上面的代码,但我得到的凭据是空的。
您似乎遵循了错误的 Firebase 身份验证文档。如果您在 Flutter 中进行开发,那么它将与 FirebaseAuth 一起使用。
这是链接-
如果您仍然需要帮助,请告诉我。