Arm*_*aan 3 dart firebase firebase-authentication flutter
我是 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);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么要currentUser作为函数调用?它是一个领域,而不是一种方法。
final user = await _auth.currentUser;
Run Code Online (Sandbox Code Playgroud)
更新:由于currentUser不返回未来,因此使用await是无用的,即使它不会导致错误(await在非未来对象上导致,在掩护下,对象被包装在新的未来中)。
文档参考:https : //pub.dev/documentation/firebase_auth/latest/firebase_auth/FirebaseAuth/currentUser.html
小智 5
final currentUser = await _firebaseAuth.currentUser();
Run Code Online (Sandbox Code Playgroud)
只需将上面的代码替换为
final currentUser = _firebaseAuth.currentUser;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2687 次 |
| 最近记录: |