首页 > 解决方案 > 如何使用 Firebase 身份验证获取 onAuthStateChanged 流?

问题描述

我使用颤振插件 firebase_auth: ^0.18.4+1

我在编辑器中收到此警告:

函数表达式类型“String Function(FirebaseUser)”不是“String Function(User)”类型。这意味着它的参数或返回类型与预期不匹配。考虑更改参数类型或返回的类型。

FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
Stream<String> get onAuthStateChanged =>
      _firebaseAuth.onAuthStateChanged.map((FirebaseUser user) => user?.uid);

'onAuthStateChanged' 也被弃用了。如何更改它以获取 onAuthStateChanged 上的流?

标签: firebaseflutterdartfirebase-authentication

解决方案


改变这个:

FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
Stream<String> get onAuthStateChanged =>
      _firebaseAuth.onAuthStateChanged.map((FirebaseUser user) => user?.uid);

进入这个:

FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
Stream<String> get onAuthStateChanged =>
      _firebaseAuth.authStateChanges().map((User user) => user?.uid);

您需要使用Userclass 而不是FirebaseUser.


推荐阅读