我想顯示用戶電子郵件和 ID。我寫了一個代碼,它正在作業,然后現在無緣無故地顯示 null ..有人可以幫我嗎?啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

import 'package:file_picker/file_picker.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
import 'package:flutter_dev/reusable.dart';
class Fy extends StatefulWidget {
const Fy({super.key});
@override
State<Fy> createState() => _FyState();
}
class _FyState extends State<Fy> {
PlatformFile? pickedFile;
dynamic UserId;
dynamic UserMail;
Future Please() async{
FirebaseAuth.instance.authStateChanges().listen((User? user) {
if (user != null) {
setState(() {
UserId = user.uid;
UserMail = user.email;
});
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
Text(
'Hello $UserMail',
style: TextStyle(color: Colors.white),
),
Text(
'$UserId',
style: TextStyle(color: Colors.white),
),
]),
),
);
}
}
uj5u.com熱心網友回復:
我認為它不起作用,因為沒有發生 authState 更改。您的用戶已登錄,除非您將他注銷,否則他不會發生任何身份驗證狀態更改。一個簡單但不那么優雅的解決方案可能是簡單地呼叫用戶,然后在 UI 中顯示屬性。像這樣的東西:
class Fy extends StatefulWidget {
const Fy({super.key});
@override
State<Fy> createState() => _FyState();
}
class _FyState extends State<Fy> {
PlatformFile? pickedFile;
user = FirebaseAuth.instance.currentUser;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
Text(
'Hello ${user.email}',
style: TextStyle(color: Colors.white),
),
Text(
'${user.uid}',
style: TextStyle(color: Colors.white),
),
]),
),
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/530397.html
標籤:扑镖
下一篇:使用“通知程式”時UI不會更新
