【问题标题】:Flutter: How to use FirebaseAuth idTokenChange?Flutter:如何使用 FirebaseAuth idTokenChange?
【发布时间】:2020-10-04 04:59:33
【问题描述】:

如果我登录了,不用重新登录就直接进入主页。

喜欢这个

FirebaseAuth _auth = FirebaseAuth.instance;
  User firebaseuser = _auth.currentUser;
  if (firebaseuser == null) {
    return runApp(MaterialApp(home: login()));
  } else {
    return runApp(MaterialApp(home: MainPage()));
  }

但是currentUser 描述说

你不应该使用这个 getter 来确定用户的当前状态, 而是使用 [authStateChanges]、[idTokenChanges] 或 [userChanges] 来 订阅更新。

所以我决定使用idTokenChanges

因为它说

通知用户登录状态的变化(例如登录或 注销)以及令牌刷新事件。

我是这样设计的

Stream<User> loginstate = await FirebaseAuth.instance.idTokenChanges();

但是我不知道怎么用。

【问题讨论】:

    标签: firebase flutter firebase-authentication


    【解决方案1】:

    您应该仅将authStateChanges 用于用户登录状态更新,而不是idTokenChangesdocumentation 中有一个使用其流的示例:

    FirebaseAuth.instance
      .authStateChanges()
      .listen((User user) {
        if (user == null) {
          print('User is currently signed out!');
        } else {
          print('User is signed in!');
        }
      });
    

    idTokenChanges 用于获取用户 ID 令牌的更新,每小时刷新一次。

    【讨论】:

    • idTokenChanges 是否包括authStateChanges 中的所有事件以及令牌更改?所以如果我想听两个,我可以只听idTokenChanges而不是两个流?
    猜你喜欢
    • 2021-11-17
    • 2023-01-30
    • 2020-02-22
    • 2020-06-28
    • 1970-01-01
    • 2020-04-30
    • 2021-04-27
    • 2021-05-13
    • 2017-05-07
    相关资源
    最近更新 更多