[英]Flutterfire GetX AuthFlow
我正在使用 flutter、firebase auth 和 getx 来构建应用程序。 检查用户是否存在后,页面应该会正常重定向。 但事实并非如此。 我究竟做错了什么? 我已经坚持了一段时间,但我无法弄清楚。 它卡在加载屏幕上,尤其是当用户是 null 时。 如果我在 firebase 中创建用户,它会正常重定向。
class AuthController extends GetxController {
static AuthController authInstance = Get.find();
final phone = ''.obs;
final phoneOtp = ''.obs;
final verificationID = ''.obs;
final FirebaseAuth auth = FirebaseAuth.instance;
late Rx<User?> firebaseUser;
@override
void onReady() {
super.onReady();
firebaseUser = Rx<User?>(auth.currentUser);
firebaseUser.bindStream(auth.userChanges());
ever(firebaseUser, _setInitialScreen);
}
_setInitialScreen(User? user) {
if (user == null) {
Get.offAllNamed("/onboarding");
} else {
Get.offAllNamed("/landing");
}
}
}
Firebase 有一个 function 来检查用户的状态,用它来代替它更容易和更有效。 使用流构建器
StreamBuilder(
stream: AuthServices().onChangedUser,
builder: (context, snapshot) {
return snapshot.data == null ? Get.offAllNamed("/onboarding"); : Get.offAllNamed("/landing");;
},
),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.