thắc mắc [Flutter] Firebase Auth - onAuthStateChanged not called

vim.modo

Junior Member
Chào các bác,
Mình đang tìm hiểu Flutter, đang code SignIn, SignOut.
Khi mình SignOut thì onAuthStateChanged không đc gọi, nên nó không đá về SignInPage mà vẫn nằm ở HomePage.
Vần đề này lúc bị lúc không ... :surrender:
Có bác nào biết không giúp mình với.
Thank

Java:
class LandingPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StreamBuilder<FirebaseUser>(
      stream: FirebaseAuth.instance.onAuthStateChanged,
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.active) {
          if (snapshot.data == null) {
            return SignInPage();
          }
          return HomePage();
        } else {
          return Scaffold(
            appBar: AppBar(
              title: Text("Hello"),
              centerTitle: true,
            ),
            body: Center(
              child: CircularProgressIndicator(),
            ),
          );
        }
      },
    );
  }
}

//Button Logout
Java:
              actions: <Widget>[
                IconButton(
                  icon: Icon(Icons.lock_open),
                  onPressed: () async {
                    await firebaseService.signOut();
                  },
                ),
              ]

// Function Logout
Java:
  Future signOut() async {
    try {
      return await _auth.signOut();
    } catch (e) {
      print(e.toString());
      return null;
    }
  }
 
Last edited:
  • sao bác ko để tìm cách gửi context xuống // Function Logout rồi navigate trong cái hàm đó.
  • Hoặc không notify ngược lên UI rồi navigate!
  • Bác để vậy sau này ko xài firebase mà signout bằng cách clear Token (hay cách khác) phải sửa cái
stream: FirebaseAuth.instance.onAuthStateChanged, à bác.
-----
Còn sorry bác, câu hỏi vì sao cái change method thì em chịu
 
  • sao bác ko để tìm cách gửi context xuống // Function Logout rồi navigate trong cái hàm đó.
  • Hoặc không notify ngược lên UI rồi navigate!
  • Bác để vậy sau này ko xài firebase mà signout bằng cách clear Token (hay cách khác) phải sửa cái
stream: FirebaseAuth.instance.onAuthStateChanged, à bác.
-----
Còn sorry bác, câu hỏi vì sao cái change method thì em chịu
Mình newbie nên chưa nắm hết bác. Thank bác cho thêm thông tin về dùng Token.
Àh còn FirebaseAuth.instance.onAuthStateChanged thì tạm ổn. Nó chỉ bị khi mình signin - signout liên tục :ops:

Viết ở initistate nhé. Hàm build bị render lại nên không nhận giá trị đâu.
Nó nhận bác, chỉ là hơi chậm chờn :big_smile: Nó chỉ bị khi mình signin - signout liên tục
 
Back
Top