K.k*_*K.k 5 firebase firebase-authentication flutter
如果我登录过,则无需再次登录即可进入主页。
像这样
FirebaseAuth _auth = FirebaseAuth.instance;
User firebaseuser = _auth.currentUser;
if (firebaseuser == null) {
return runApp(MaterialApp(home: login()));
} else {
return runApp(MaterialApp(home: MainPage()));
}
Run Code Online (Sandbox Code Playgroud)
然而currentUser描述说
您不应使用此 getter 来确定用户当前状态,而应使用 [authStateChanges]、[idTokenChanges] 或 [userChanges] 来订阅更新。
所以我决定使用idTokenChanges.
因为它说
通知用户登录状态(例如登录或注销)的更改以及令牌刷新事件。
我做了这样的
Stream<User> loginstate = await FirebaseAuth.instance.idTokenChanges();
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用它。
您应该authStateChanges仅用于用户登录状态更新,而不是idTokenChanges. 文档中有一个使用其流的示例:
FirebaseAuth.instance
.authStateChanges()
.listen((User user) {
if (user == null) {
print('User is currently signed out!');
} else {
print('User is signed in!');
}
});
Run Code Online (Sandbox Code Playgroud)
idTokenChanges用于获取用户 ID 令牌的更新,该令牌每小时刷新一次。
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |