🍣

【Flutter】Firestoreの値の変更に対して、強制的にログアウトさせる。(2021/09/21)個人メモ

2021/09/21に公開

Firestoreの値が変化したら、ユーザーを強制的にログアウトさせる必要があったので、その時に実装したコードメモ

modelで書いたコード

lithenしてる。

  User? user = FirebaseAuth.instance.currentUser;
  String userStatus = '';

  void cancelState() async {
    if (user == null) {
      return null;
    }

    Stream<DocumentSnapshot> userStream =
        await FirebaseFirestore.instance.collection('users').doc(user!.uid).snapshots();

    userStream.listen((DocumentSnapshot document) {
      Map<String, dynamic> data = document.data() as Map<String, dynamic>;
      this.userStatus = data['userStatus'];

      notifyListeners();
    });
  }
}

Viewで書いたコード

上にはchangeNotifierProvider

``` if (model.userStatus == '-1') {
      WidgetsBinding.instance!.addPostFrameCallback((_) {
        Navigator.of(context).push(
          MaterialPageRoute(builder: (context) {
            return LoginPage(cancelMessage);
          }),
        );
      });
    }
```

Discussion