我是 Flutter 的新手,我在注册时正在开发一个简单的身份验证应用程序,我应该导航到聊天屏幕,我想获取当前用户,但是当我调用 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);
}
}
最佳答案
为什么要调用currentUser
作为一个功能?它是一个领域,而不是一种方法。
final user = await _auth.currentUser;
更新:自
currentUser
不返回 future ,使用await
没有用,即使它不会导致错误(非 future 对象上的 await
导致在掩护下,对象被包装在新的 future )。文档引用:https://pub.dev/documentation/firebase_auth/latest/firebase_auth/FirebaseAuth/currentUser.html
关于firebase - currentUser() 不是工作类型为什么我看到表达式没有计算为函数,所以它不能被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63667623/