Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 类型为'的值;溪流<;用户?>';can';无法从函数返回';用户';因为它的返回类型为';溪流<;用户>';飘飘然_Android_Ios_Firebase_Flutter_Dart - Fatal编程技术网

Android 类型为'的值;溪流<;用户?>';can';无法从函数返回';用户';因为它的返回类型为';溪流<;用户>';飘飘然

Android 类型为'的值;溪流<;用户?>';can';无法从函数返回';用户';因为它的返回类型为';溪流<;用户>';飘飘然,android,ios,firebase,flutter,dart,Android,Ios,Firebase,Flutter,Dart,我试图实现一个getter,但它在下面代码段的最后一行显示了这个错误 代码是- class AuthRepository extends BaseAuthRepository { final FirebaseFirestore _firebaseFirestore; final auth.FirebaseAuth _firebaseAuth; AuthRepository({ FirebaseFirestore? firebaseFirestore, auth.F

我试图实现一个getter,但它在下面代码段的最后一行显示了这个错误

代码是-

class AuthRepository extends BaseAuthRepository {

  final FirebaseFirestore _firebaseFirestore;
  final auth.FirebaseAuth _firebaseAuth;

  AuthRepository({
    FirebaseFirestore? firebaseFirestore,
    auth.FirebaseAuth? firebaseAuth,
  })  : _firebaseFirestore = firebaseFirestore ?? FirebaseFirestore.instance,
        _firebaseAuth = firebaseAuth ?? auth.FirebaseAuth.instance;

  @override
  // TODO: implement user
  Stream<auth.User> get user => _firebaseAuth.userChanges();
class AuthRepository扩展了BaseAuthRepository{
最终FirebaseFirestore\u FirebaseFirestore;
final auth.FirebaseAuth\u FirebaseAuth;
AuthRepository({
FirebaseFirestore?FirebaseFirestore,
auth.FirebaseAuth?FirebaseAuth,
}):_firebaseFirestore=firebaseFirestore??firebaseFirestore.instance,
_firebaseAuth=firebaseAuth??auth.firebaseAuth.instance;
@凌驾
//TODO:实现用户
Stream get user=>\u firebaseAuth.userChanges();
更改

 Stream<auth.User> get user => _firebaseAuth.userChanges(); 
Stream get user=>\u firebaseAuth.userChanges();

Stream get user=>\u firebaseAuth.userChanges()!;
如图所示

该方法返回一个Stream对象,这意味着它可能为null

因为您不能确定返回的类型的内容,所以可以检查它是否为null,而不是返回它

class AuthRepository扩展了BaseAuthRepository{
最终FirebaseFirestore\u FirebaseFirestore;
final auth.FirebaseAuth\u FirebaseAuth;
AuthRepository({
FirebaseFirestore?FirebaseFirestore,
auth.FirebaseAuth?FirebaseAuth,
}):_firebaseFirestore=firebaseFirestore??firebaseFirestore.instance,
_firebaseAuth=firebaseAuth??auth.firebaseAuth.instance;
@凌驾
//TODO:实现用户
流获取用户=>
val userChanges=_firebaseAuth.userChanges();
if(userChanges!=null)返回userChanges
否则//
试试这个

Stream<auth.User?> get user => auth.userChanges(); 
Stream get user=>auth.userChanges();

\u firebaseAuth.userChanges()
返回可为空的
用户
,因此您需要通过在
auth.User
之后添加
更新返回类型,使其可为空,如下所示:

Stream get user=>\u firebaseAuth.userChanges();

bro.No.它不起作用了。它再次出现了相同的错误。在您的代码段中,return userChanges也出现了相同的错误。实际上,我尝试过,但在您提到的行中的“user”上出现了此错误。这是错误-AuthRepository.user'(“Stream Function()”)不是对“BaseAuthRepository.user”(“Stream Function()”)的有效重写。您需要在
BaseAuthRepository
中进行相同的更改。请阅读迁移到空安全性的指南:我真的忘记了。我进行了更改,问题得到了解决。不,不是在“用户”上工作,它显示了此错误-“AuthRepository.user”(“Stream Function()”)不是对“BaseAuthRepository.user”的有效重写('Stream Function()')。您的扩展类
BaseAuthRepository
可能有问题,行上的bcs是空安全的完美之选是的,是的。我真的忘了。多亏了您兄弟。
class AuthRepository extends BaseAuthRepository {

final FirebaseFirestore _firebaseFirestore;
final auth.FirebaseAuth _firebaseAuth;

AuthRepository({
  FirebaseFirestore? firebaseFirestore,
  auth.FirebaseAuth? firebaseAuth,
  })  : _firebaseFirestore = firebaseFirestore ?? FirebaseFirestore.instance,
    _firebaseAuth = firebaseAuth ?? auth.FirebaseAuth.instance;

 @override
 // TODO: implement user
 Stream<auth.User> get user => 
   val userChanges = _firebaseAuth.userChanges();
   if (userChanges != null) return userChanges
   else //your logic
Stream<auth.User?> get user => auth.userChanges();