Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Firebase currentUser()不是工作类型,因此我看到表达式不';t对函数求值,因此它可以';不能调用_Firebase_Flutter_Dart_Firebase Authentication - Fatal编程技术网

Firebase currentUser()不是工作类型,因此我看到表达式不';t对函数求值,因此它可以';不能调用

Firebase currentUser()不是工作类型,因此我看到表达式不';t对函数求值,因此它可以';不能调用,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我是Flatter的新手,我正在开发一个简单的身份验证应用程序,当我注册时,我应该导航到聊天屏幕,我想抓取当前用户,但当我调用FireBaseAuth.instance.currentUser()时,我遇到了一个异常“表达式没有对函数求值,因此无法调用它。”为什么我会看到这个?请帮忙 import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:

我是Flatter的新手,我正在开发一个简单的身份验证应用程序,当我注册时,我应该导航到聊天屏幕,我想抓取当前用户,但当我调用FireBaseAuth.instance.currentUser()时,我遇到了一个异常“表达式没有对函数求值,因此无法调用它。”为什么我会看到这个?请帮忙

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flash_chat/constants.dart';

class ChatScreen extends StatefulWidget {
  static const String id = "chatScreen";
  @override
  _ChatScreenState createState() => _ChatScreenState();
}

class _ChatScreenState extends State<ChatScreen> {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  // ignore: deprecated_member_use
  FirebaseUser loginUser;

  @override
  void initState() {
    super.initState();
    getCurrentUser();
  }

  void getCurrentUser() async {
// HERE I got an Exception "The expression doesn't evaluate to a function, so it can't be invoked."
    final user = await _auth.currentUser();
    if (user != null) {
      loginUser = user;
      print(loginUser.email);
    }
  }


import'package:firebase_auth/firebase_auth.dart';
进口“包装:颤振/材料.省道”;
导入“package:flash_chat/constants.dart”;
类ChatScreen扩展StatefulWidget{
静态常量字符串id=“chatScreen”;
@凌驾
_ChatScreenState createState()=>\u ChatScreenState();
}
类_ChatScreenState扩展状态{
final FirebaseAuth _auth=FirebaseAuth.instance;
//忽略:不推荐的\u成员\u使用
FirebaseUser登录用户;
@凌驾
void initState(){
super.initState();
getCurrentUser();
}
void getCurrentUser()异步{
//这里我得到了一个异常“表达式的计算结果不是函数,因此无法调用它。”
最终用户=等待_auth.currentUser();
如果(用户!=null){
loginUser=用户;
打印(logiuser.email);
}
}

为什么要将
currentUser
作为函数调用?它是一个字段,而不是一个方法

final user = await _auth.currentUser;
更新: 由于
currentUser
不返回未来,因此使用
await
是无用的,即使它不会导致错误(
await
在非未来对象上导致在封面下将对象包装成新的未来)

文件参考:

只需将上述代码替换为

final currentUser =  _firebaseAuth.currentUser;

是啊,完成了,我读了一些文档,然后我意识到,顺便说一句,谢谢
final currentUser =  _firebaseAuth.currentUser;