繁体   English   中英

Flutterfire GetX AuthFlow

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM